编写程序,输入一个正整数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;}
2 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
fact是用户自定义函数,不包含在<math.h>头文件里,需要自己定义啊
程序这样写 #include double fact(int k) { double sum=0; double x=1; while(x<=k) { sum=sum+1/x; x++; } return sum; } int main() { int n; printf("请输入一个正整数:\n"); while(1) { scanf("%d",&n); if(n<1) { printf("请输入正确的数!\n"); } else { break; } } printf("sum=%.5lf\n",fact(n)); return 0; }
呼如林
TA贡献1798条经验 获得超3个赞
你还没有定义FACT函数吧
fact是函数库外的,要定义
#include double fact(int n); int main() { int i,k; double sum=0; printf("please input a integer number :");//最好加上这句,不然其他人不知道你想人家干什么 scanf("%d",&k); for(i=1;i<=k;i++) { sum+=fact(i); } printf("sum is %.5f\n",sum); return 0; } double fact(int n) { if(n==0||n==1)//当n=0或n=1时,n!=0 return 1; else return 1.0/n*fact(n-1); } 本程序已用Microsoft visual c++6.0检测过
- 2 回答
- 0 关注
- 131 浏览
添加回答
举报
0/150
提交
取消