首页 > 电脑

输入实数x,计算x+(x^2)/2!+(x^3)/3!...直到末项绝对值

更新时间2018-11-13 09:12:05

大神指导哪里有问题?

#include<stdio.h>

#include<math.h>

int prime(int n)

{

int i,s;

for(i=1,s=1;i<=n;i++)

{

s=s*i;

}

return s;

}

int main(void)

{

int i;

float x,a,b,t,s;

scanf("%lf",&x);

i=1;

s=0;

do

{

a=pow(x,i);

b=prime(i);

t=fabs(a/b);

s=s+a/b;

i++;

}while(t>=0.00001);

printf("%.3lf ",s);

return 0;

}


首先,你的输入就错了,float不能用%lf的,这个是double的输入

其次,你的prime函数也不应该是int的(早溢出了),且prime函数名也有歧义(阶乘的英文是factorial,你的这个是奇数)

改    

float x,a,b,t,s;

    double x,a,b,t,s;

int prime(int n)

double prime(int n)

并改

int i,s;

 int i;

    double s;

就可以有结果了

上一篇:c语言从键盘输入一个正数,按数字的相反输出(即若输入468,则输出864)

下一篇:typedefUINTMMVERSION;出现这个错误该怎么解决