【发布时间】:2022-01-08 13:38:15
【问题描述】:
我可以请教一下吗? 我正在尝试获取标记为“计算”的值的总和。 我的代码目前正在为每次循环输出值,但我只想要 1 个值,它是所有这些值的总和。
提前感谢您的建议。
#include<stdio.h>
int i, f = 1;
float calculation = 0;
int main()
{
for (i = 1; i <= 19; i++)
{
f = f * i;
//printf("Factorial of %d is: %d\n",i,f);// just for me to check//
calculation = 1.00 / f;
printf("Factorial calculation is %d! = %f\n", i, calculation);
}
return 0;
}
【问题讨论】:
-
你似乎知道如何做阶乘,但你却卡在加法上?旁注,您的阶乘真的可以正常工作吗?那应该是
unsigned long long f;或uint64_t f;否则会出现整数溢出。 -
感谢您对巴马克的评论。我之前曾使用“+=”来尝试存储计算的总和,因为它通过循环,类似于下面的答案,但它只是由于某种原因不起作用。我想也许有另一种方式我应该这样做。我对编码很陌生,抱歉。感谢您提供有关变量分配的提示。
-
更改为
unsigned long long f;和printf("Factorial of %d is: %llu\n",i,f)(取消注释)然后它应该打印与此一致的结果:en.wikipedia.org/wiki/Factorial