首先说数据范围,因为阶乘增长很快,所以用int型的只能计算较小数的阶乘。
还有就是楼主应该把int a,b=1;这一句放在while循环体外边。
第一个程序:
if(a)
{
b*=a;
a--;
}
printf("%d!=%d",a,b);
if语句啊,只执行一次,if应该换while才对吧。另外输出的时候a的值已经改变了,不是输入时的数了。
改完之后是这样的。
int c=a;
while(a){
b*=a;
a--;
}
printf("%d!=%d",c,b);
第二个程序:
情况与第一类似,不同的是a=0的情况你考虑错了。
希望楼主好好努力啊