请问下错在哪里,另外是1/x还是1.0/x,谢谢

编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。

1+1/2+ .... +1/n!

输出保留5位小数。

#include<stdio.h>
#include<math.h>
int main()
{
double x,n,k=1,sum;
scanf("%lf",&n);
while(k<=n)
{
x=fact(k);
sum=sum+1/x;
k++;
}
printf("sum=%.5f",sum);
return 0;
}

吃鸡游戏
浏览 134回答 2
2回答

猛跑小猪

fact是用户自定义函数,不包含在<math.h>头文件里,需要自己定义啊程序这样写 #include double&nbsp;fact(int&nbsp;k) { double&nbsp;sum=0; double&nbsp;x=1; while(x<=k) { sum=sum+1/x; x++; } return&nbsp;sum; } int&nbsp;main() { int&nbsp;n; printf("请输入一个正整数:\n"); while(1) { scanf("%d",&n); if(n<1) { printf("请输入正确的数!\n"); } else { break; } } printf("sum=%.5lf\n",fact(n)); return&nbsp;0; }

呼如林

你还没有定义FACT函数吧fact是函数库外的,要定义#include&nbsp; double&nbsp;fact(int&nbsp;n); int&nbsp;main() { int&nbsp;i,k; double&nbsp;sum=0; printf("please&nbsp;input&nbsp;a&nbsp;integer&nbsp;number&nbsp;:");//最好加上这句,不然其他人不知道你想人家干什么 scanf("%d",&k); for(i=1;i<=k;i++) { sum+=fact(i); } printf("sum&nbsp;is&nbsp;%.5f\n",sum); return&nbsp;0; } double&nbsp;fact(int&nbsp;n) { if(n==0||n==1)//当n=0或n=1时,n!=0 return&nbsp;1; else&nbsp;return&nbsp;1.0/n*fact(n-1); }&nbsp; 本程序已用Microsoft&nbsp;visual&nbsp;c++6.0检测过
打开App,查看更多内容
随时随地看视频慕课网APP