while后面括号的内容限制是啥
int a, b=1;
scanf ("%d", &a);
if (b<=a && a>0)
while()//循环
{
b=a*b;
a-=1;
}
printf("%d\n", b);
这是在做阶乘运算。括号里填入a相关式子可以正常执行,但是填入其它的就不行了比如“b”、“111”等数字、“a<0/a==某个数”,但是填“a>0”就可以
while里不是0和错误关系表达式才被认为是假吗
你需要的是 a!,又a!=a(a-1)...1
,则直接写成b=1 ;while(a>0)b = a*b,a-=1;即可
但是注意 可能会 爆int 值,当 a 过大的时候
你执行的条件就是a要大于等于b
但是你的while语句也是有问题的,没有结束条件啊。
将if判断去掉
你改为while(b<=a && a>0) 就可以了