用c语言求(1/1)!+(1/2)!+(1/3)!+……+(1/n)!

#include "stdio.h"
main()
{
int n;float t;
scanf("%d",&n);
t=fun(n);
printf("result is=%f\n",t);
}
float fun(int n)
{int i;
float s=0.0,e;
e=1;
for(i=1;i<=n;i++)
{e=1.0/e*i;
s=s+e;
}
return s;
}
哪里出错了?结果没得到正确值。

第1个回答  2014-08-26
你的程序如果如下改改将可能会更好,因为这样它将更简洁,更容易看懂,也更快。
#include <stdio.h>

int main( )
{
int i, n;
double sum = 0, t = 1;
scanf("%d", &n)
for(i = 1; i <= n; i++)
{
t = t / i;
sum = sum + t;
}
printf("\nS=1/1!+1/2!+...+1/%d!=%.16lf\n", n, sum);
return 0;
}
是否可以解决您的问题?
第2个回答  2014-08-26
e=1.0/e*i 换成 e=1.0/(e*i)试试追问

改后答案为一整数,还是差一点点

本回答被提问者采纳

用c语言求(1\/1)!+(1\/2)!+(1\/3)!+……+(1\/n)!
int i, n;double sum = 0, t = 1;scanf("%d", &n)for(i = 1; i <= n; i++){ t = t \/ i;sum = sum + t;} printf("\\nS=1\/1!+1\/2!+...+1\/%d!=%.16lf\\n", n, sum);return 0;} 是否可以解决您的问题?

用C语言,编写求n的阶乘的函数,求1\/1!+1\/2!+1\/3!+…1\/n!,直到最后两项...
答案是1.718282 代码如下:include <stdio.h> int main(){ double res=0.0, tmp=1.0;int i=1;while(1){ if(tmp*i\/(i+1)<1e-5)break;tmp\/=i;res += tmp;i++;} printf("%lf\\n", res);return 0;}

用C语言编程求解:1\/1! + 1\/2! +1\/3! +……1\/n! ,其中n为用户从键盘上输...
void main(){ long sum=0,i=1,k=1,n;scanf("%ld",&n);for(;i<=n;i++){ k=k*i;sum=sum+k;} printf("%ld\\n",sum);} 这可是我一点点打上来的啊,保证是正确的,我在做任务呢,麻烦帮忙啊

c语言编程题,求e的近似值,e=1\/1!+1\/2!+1\/3!+...+1\/n!,累加项小于1
正确的公式为:e=1+1\/1!+1\/2!+1\/3!+...+1\/n!代码实现如下:include<stdio.h> int fun(int n){ if(n == 1)return 1;return n*fun(n-1);} int main(){ double sum =1.0 ;int i = 1;while((1.0\/fun(i))>=1e-8){ sum +=(1.0\/fun(i));i++;} printf("%.8...

C语言问题 计算s=1\/1!+1\/2!+1\/3!+...+1\/n!(n<20,从键盘输入)
include <stdio.h> int main(void){ int n,i,t;double sum=0;printf("输入n:\\n");scanf("%d",&n);for(i=1;i<=n;i++){ t*=i;sum+=1.0\/t; \/*由于sum是浮点数 所以要用这个形势 } printf("sum=%lf",sum);return 0;} 这种写法因该是标准的!仅供参考 ...

编写C程序:求1\/1!+1\/2!+1\/3!+...+1\/n!(n!=1*2*3*4...n)急!急!帮帮啊...
include <stdio.h> main(){ int i,n,j=1;double sum=0;printf("输入n的值:");scanf("%d",&n);for(i=1;i<=n;i++){ j=j*i;sum=sum+(1\/double(j));printf("%d ,%f\\n",j,sum);} printf("sum=%f\\n",sum);}

c语言求1\/1!+1\/2!+1\/3!+1\/4!……+1\/n! =e 且n=20
include <stdio.h> float jc(int n){ int j;float p=1;for(j=1;j<=n;j++)p=p*j;return p;} int main(){ int i;float e=1;for(i=1;i<=20;i++)e+=1\/jc(i);printf("e=%f\\n",e);return 0;}

...输入一个正整数n,求1\/1!+1\/2!+1\/3!+……1\/n!的值。谢谢
include<stdio.h> main(){ int i ,n ,t=1 ;float s=0;printf("\\n请输入 n :");scanf("%d,",&n);for(i = 1;i<=n;i++){ t=t*i ;s+=1\/t ; } printf("S=%f ", s);getch();}

编写一个C语言程序:求S=1\/1+1\/2+1\/3+…+1\/n
include<stdio.h> void main(){ int i,n;double t,s=0;scanf("%d",&n);for(i=1;i<=n;i++){ t=1.0\/i;\/\/原因在这1和i都是int类型,1\/i就是整除了,只要i>1这个式子就是0,改1.0下就行了。s=s+t;} printf("s=%lf\\n",s);} ...

怎样用C语言编程计算1+ 1\/2+ 1\/3 +...+ 1\/n?
for(i=1;i<=n;i++)sum+=(float)1\/i;printf("前n项和为sum=%.4f\\n",sum);return 0;} K&R C 起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C ...

相似回答
大家正在搜