Hi,基本按照你源程序的思路,只改了些必要的地方,注释已经加上去了,不懂再问我。
// #include "stdafx.h" //也许你是在vc下面运行,还用了MFC那就加上这句吧#include
int main(int argc, char* argv[])
{
int n;
int factorial = 1;
int nonnegative_integer; //那个循环完了之后N的值就变了,用这个值记住最开始你输入的N值
printf ("Enter the nonnegative integer: ");
scanf("%d", &n);
nonnegative_integer = n; //保存输入变量
if (n<0)
printf("n cant below zero!\n"); //提示负数的话直接结束程序
else
{
while( n != 0 && n != 1) //必须用循环,用if语句的话一趟就结束了
{ //N等于0或者1的结果就是1,不用处理
factorial *= n; //因为你的factorial初始化成1的
--n;
}
printf("%d! is %d\n", nonnegative_integer, factorial) ; //在N不为负的情况下输出
}
return 0 ;
}