我试图用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;

}

已经提前谢谢了!

最佳答案

for循环中的条件是awhile条件:

int i = 1;
while(i == n)
{
   //loopbody
   fact=fact*i;
   i++;
}

所以它只能在n==1时执行任何操作,而且循环只能运行0或1次。

关于c - for循环中的比较运算符(C语言),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23613337/

10-11 23:03