alps_in_the_milk 2022-10-14 17:20 采纳率: 100%
浏览 54
已结题

while括号里内容的限制

问题遇到的现象和发生背景

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和错误关系表达式才被认为是假吗

我想要达到的结果 求问while括号是有什么限制吗
  • 写回答

2条回答 默认 最新

  • NothingAtall. 2022-10-14 18:42
    关注

    你需要的是 a!,又a!=a(a-1)...1
    ,则直接写成b=1 ;while(a>0)b = a*b,a-=1;即可

    但是注意 可能会 爆int 值,当 a 过大的时候

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 已采纳回答 10月14日
  • 创建了问题 10月14日