C语言求阶乘倒数之和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言求阶乘倒数之和相关的知识,希望对你有一定的参考价值。

为什么这样算没返回值。。。
#include<stdio.h>
double fun(int a)

int i,j,m,S=1;
for(i=2;i<=a;i++)

m=1;
for(j=i;j>=1;j--)

m*=1/j;

S+=m;

return S;

main()

int n;
scanf("%d",&n);
fun(n);

改了一下但是貌似算法有问题。。
#include<stdio.h>
double fun(int a)

int i,j;
double m,S=1.0;
for(i=2;i<=a;i++)

m=1.0;
for(j=i;j>=1;j--)

m*=1/j;

S+=m;

return S;

main()

int n,sum;
scanf("%d",&n);
fun(n);
sum=fun(n);
printf("%d\n",sum);

参考技术A #include<stdio.h>
#if 0
double fun(int a)

int i,j;
double m,S=1.0;
for(i=2;i<=a;i++)

m=1.0;
for(j=1;j<=i;j++)//--变++不变也可

m*=j;//改了一下

S+=1.0/m;

return S;

#endif
//优化了一下
double fun(int a)

int i,j;
double m=1.0,S=1.0;
for(i=1;i<=a;i++)//从0算起,从1算起的话改回:for(i=2;i<=a;i++)

m*=i; // 求阶乘
S+=1.0/m;//倒数相加

return S;


main()

int n,sum;
scanf("%d",&n);
sum=fun(n);
printf("%d\n",sum);


你的求倒数算法的结果为零,因为使用了整数相除结果为整除的商。
另外一重循环就可以了!追问

貌似所有返回值都是1

追答

1+0=1

本回答被提问者采纳
参考技术B 少了printf函数, 可以在main里面加上int a;然后在最下面更改a=fun(n);
printf("%d",a);
参考技术C 你在代后面加上
printf("%f",fun(n));//显示函数fun返回值的信息,
一般的MAN函数的格式
int main(void)


return 0;

希望对你有帮助。

C语言for循环 求1--10阶乘的和

阶乘的公式为:n!=1*2*...*(n-1)*n.

#include <stdio.h>
void main()

int a,b,c;
int sum=0;
for(a=1;a<=10;a++)//控制1-10个数字

for(b=1,c=1;b<=a;b++)//控制每个数的阶乘

c=b*c;

sum+=c;//把结果累加在sum中

printf("10的阶乘之和为:%ld\n",sum);

//前面的几位帅哥,有没有编译啊?我试了几个,还要改了又改;
参考技术A

现象一:手机不开机(手机电池可拆卸)

解决方法:新手机放上电池首次开机,手机要做初始化的操作,开机时间会较长,有可能被误认为不开机。对于电池过度放电造成的不开机,取下电池,手机连接充电器看能否开机,如可以开机,将电池装上充电30分钟以上,可正常开机。

现象二:手机放在口袋中,触摸屏与身体接触,此时来电无法划动触屏接听电话。

解决方法:保持手及触摸屏的清洁和干燥,击两下开机键(锁屏键),让触摸屏自身重新校准,然后在开锁试试。

参考技术B 首先定义两个整形的初始值,因为C语言的变量必须是先定义后试用,而且不赋初始值的话,其变量值是不定的。(C语言是不是这么定义整形我记不清楚了,java是这样的,如果我定义错了,你自己改下)
int n=1,sum=0;
for(i=1;i<=10;i++)
for(j=1;j<=i;j++)
n=n*j;//计算1到10的阶乘

sum=sum+n;//把阶乘的结果累加!

sum就是1到10阶乘的和
参考技术C for(n=1;n<M:n++)
for(k=1;k<n;k++)
c=k*(k+1);

cont=cont+c;

大概就是这样,要双重FOR的。

以上是关于C语言求阶乘倒数之和的主要内容,如果未能解决你的问题,请参考以下文章

C语言求1-20的阶乘之和

c语言 1到20的阶乘之和

【c#】求1到n之间的所有素数之和.

C语言练习010:求1到10的阶乘之和

在C语言中如何表达每个阶层的倒数相加

用C语言写一个程序实现以下功能