编写程序,输入一个正整数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 关注
- 174 浏览
添加回答
举报
0/150
提交
取消
