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

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日

悬赏问题

  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了
  • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
  • ¥188 需要修改一个工具,懂得汇编的人来。
  • ¥15 livecharts wpf piechart 属性
  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了