有关阶乘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
...