自定义函数错大了,改如下便可。有注释,你对照看——
double fun(int m)
{
double y=1,t=1;//这里改了
int i;
for(i=2;i<=m;i++){//这里加{}了
t=t/i;//这里改了
y+=t;
}
return y;
}
你觉得1/2然后化成整数,会是什么?答案是0。所以你是出不来结果的。请把你的t,y和t=1/里的1,都改成double型。
#include
double fun(int m)
{
double y=1,t=1; //返回的是double型
int i;
for(i=2;i<=m;i++)
{
t = t / i; //这么写,还有括号。。
y+=t;
}
return y;
}
void main()
{
int n;
printf("enter n:");
scanf("%d",&n);
printf("\nthe result is %lf\n",fun(n));
}
循环太多 最好写函数调用!