c - 我在for循环语句中哪里做错了?

标签 c for-loop

这是我的程序,带有一个 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。第一个循环后,prod0。然后用它乘以 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/

相关文章:

c - 我以为我昨天修复了它,但我搞砸了,它仍然生成相同的随机数

c - "C programming language"- 字符计数异常?

c - C中的限定符和修饰符有什么区别?

c++ - 用C++添加整数

java - 如何从嵌套数组列表中打印出来

c - 对带有数组和嵌套 For 循环的程序中特定语句的作用感到困惑

c - 我在 C 中创建 strcat 函数的代码函数有什么问题?

c - 在 C 中使用 EOF 和 getchar() 进行字符计数

java - 如何使用 if 语句或 for 循环设置枚举?

javascript - 添加for循环后的JS函数 'not defined'