首页 > 电脑

输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序,但是无论输入什么整数,结果都是0

更新时间2021-09-26 19:08:16

#include <stdio.h>
#define END  -1
long Factorial(int x);
main()
{
    int x;
    while (1)
    {
        printf("input x:");
        scanf("%d",&x);
        if (x <= END)
            break;
        else
            printf("%d! = %d ", x, Factorial(x));
    }
}
 
long Factorial(int x)
{
    int i;
    int result;
 
    for (i=1; i<=x;i++)
        result *= i;
        return result;
}

你的程序有一个疏忽,对result没有初始化,你可运行下面改正后的程序:

#include <stdio.h>
#define END  -1
long Factorial(int x);
main()
{
   int x;
   while (1)
   {
       printf("input x:");
       scanf("%d",&x);
       if (x <= END)
           break;
       else
           printf("%d! = %d ", x, Factorial(x));
   }
}
long Factorial(int x)
{
   int i;
   int result=1;
   for (i=1; i<=x;i++)
       result *= i;
       return result;
}

程序的运行例:


上一篇:这个标签是什么机器做的

下一篇:c语言:return的返回值类型为long(长整型),而该自定义函数的返回值为int(整型)。