我正在学习C并编写一个程序来计算阶乘。当我打印变量的值时,它显示为" 1111111111"。我检查并在初始化时它是" 1"。我认为它可能是溢出但问题是我不知道它为什么会发生。对于第一次迭代,prev_num变量应该读为" 1"。
#include <stdio.h>
int main(void)
{
int prev_num = 1;
int n = 0;
for (n=1; n<=10; n++)
printf("%i", prev_num);
prev_num = prev_num * n;
return 0;
}
答案 0 :(得分:2)
您忘记了for循环的括号:
for (n=1; n<=10; n++) {
printf("%i\n", prev_num);
prev_num = prev_num * n;
}
此外,添加换行符以列出彼此之下的数字。
答案 1 :(得分:1)
这是计算机查看程序的方式:
int main(void)
{
int prev_num = 1;
int n = 0;
for (n=1; n<=10; n++) // The loop runs 10 times
{
printf("%i", prev_num); // Every time, print the value "1"
}
prev_num = prev_num * n; // This line is NOT part of the loop!
return 0;
}
缩进一行不会使其成为循环的一部分
仅将{
}
放在一组语句周围使其成为循环的一部分。
当没有括号时,循环下面只有一行将成为循环的一部分。