输入的任意整数计算其阶乘,输入小于等于-1的数时退出程序,但是无论输入什么整数,结果都是0
#include <stdio.h>#define END -1long 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;
}
程序的运行例: