更新时间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;
就可以有结果了