\试题:根据算式S=1-x+(x^2)/2!-(x^3)/3!+…+(-1)*(x^n)/n!,x^n表示x的n次方,求当n=15,x=0.5时,S的值,

#include <stdio.h>;
#include <math.h>;
main()
{
int a,n,i;
double s=1.0,x;
scanf("%ld,%ld",&x,&n);
for(a=1;a<=n;a++)
{ t=x^a*(-1)^a/a!;

s=s+t;

}
printf("%.4ld\n",s);
}

a!那老是不对,程序逻辑还有错吗?

#include <stdio.h>;
#include <math.h>;
int main()
{
    int n,i;
    double s=1,x,t=1;
    scanf("%lf,%d",&x,&n);
    for(i=1;i<=n;i++)
    {
        t=t*x/i;
        s+=(-1)*t;
    }
    printf("%.4ld\n",s);
 }

^是位操作的按位异或

!是取逻辑反

这两个符号在C语言里跟数学式的意思不一样。楼主要实现幂次和阶乘,要用其他办法。


追问

刚刚看了你发的程序。哈哈。好简单啊,太好啦。

追答#include <stdio.h>;
#include <math.h>;
int main()
{
    int n,i;
    double s=1,x,t=1;
    scanf("%lf,%d",&x,&n);
    for(i=1;i<=n;i++)
    {
        t=(-1)*t*x/i;
        s+=t;
    }
    printf("%.4ld\n",s);
 }

兄弟,有个小疏漏,改了一下。不好意思哦。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-24
C语言没有定义阶乘运算符,阶乘需要自己编程实现