【发布时间】:2014-05-12 15:42:06
【问题描述】:
我正在尝试用 C 语言制作基本的阶乘示例程序,但我不明白为什么下面的程序在使用 == 比较运算符时不能正常运行,尽管它在使用
非功能版本:
#include <stdio.h>
int main()
{
int i, n, fact=1;
printf("Enter a number:");
scanf("%d", &n);
for(i=1; i==n; i++)
{
fact=fact*i;
}
printf("Factorial of %d is %d", n, fact);
return 0;
}
功能版:
#include <stdio.h>
int main()
{
int i, n, fact=1;
printf("Enter a number:");
scanf("%d", &n);
for(i=1; i<=n; i++)
{
fact=fact*i;
}
printf("Factorial of %d is %d", n, fact);
return 0;
}
提前致谢!
【问题讨论】:
-
只有在第二条语句为真时才会进入循环。
0 == n是假的。 -
下面有一些很好的答案,但如果你尝试解释为什么你认为你的初始版本会起作用,它可能会帮助你理解一点。
标签: c factorial comparison-operators