有关于C语言阶乘计算的问题

 

有关阶乘1/1+1/2+1/3.....+1/10,我这段代码是什么问题,导致计算不出正确的结果?

你这个for只是计算了一个阶乘,sum要放到循环外。

int jc(int n)
{
    if(n==1)
        return 1;
    return n*jc(n-1);
}

int main()
{
    float sum = 0;
    for(int a=1;a<=10;a++)
    {
        sum += 1.0/jc(i);
    }
    printf("%6.2f",sum);
    return 0;
}

 

代码:

#include "stdio.h"

int main()
{
	double a,j=1;
	double sum = 0;
	double count = 1;
	for(a=1;a<=10;a++)
	{
		//调整一下 注意这个for循环
		for(j=1;j<=a;j++)
			count = count * j;
		//另外double f 只应用了一次,没必要使用变量的形式
		sum += 1.0/count;
	}
	printf("%6.2lf",sum);
	return 0;
}

截图

 

两个问题已经在注释中标出

如果回答对题主有帮助,希望题主能点击右上角的采纳,采纳一下本回答,非常感谢。

阶乘是这个吗?n的阶乘是n!=1*2*3*4*....*n

...