这是我的程序,带有一个 for
循环:
int main()
{
int prod, i, num;
printf("\nHOW MANY NUMBERS WOULD YOU LIKE ME TO MULTIPLY\n");
scanf("%d", &num);
prod = 1;
for (i = 0; i <= num; i++)
{
prod = prod * i;
}
printf("\nTHE FACTORIAL OF THE GIVEN %d NUMBERS IS %d \n", num, prod);
system("pause");
return 0;
}
当我执行程序时,即使我将 num
值输入为 5 或 for 循环不增加的任何其他数字,它也会给我 0
作为输出。我哪里出错了?
最佳答案
您正在将所有内容乘以0
。第一个循环后,prod
为 0
。然后用它乘以 i
的下一个值。零乘以任何数字都是零。
您可以通过在 [1, num] 范围内进行迭代来解决此问题:
for (i = 1; i <= num; i++)
{
prod *= i; /* same effect as prod = prod * i */
}
关于c - 我在for循环语句中哪里做错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719241/