Lansional 2022-12-08 22:20 采纳率: 91.5%
浏览 19
已结题

这个循环究竟怎么运行的,可以具体叙述一下吗?

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

这个循环究竟怎么运行的,可以具体叙述一下吗?我手算结果与计算机给出的结果一直不一样,麻烦看看我的注释对不对

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include<stdio.h>

int main()
{
    int a = 2, b = 1;
    while (a-- != -1)   //a先自减再判断a是否为-1
        do
        {
            b *= a;
            b++;
        } while (a--);   //while(a--)的意思是先判断a是否为0再自减
        printf("%d %d", a, b);
        return 0;
}
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • 叶落花枯 2022-12-08 22:32
    关注

    两层循环,while的循环体是 do..while 循环;a--是先取 a 的值使用之后再自减一。
    1、while (a-- != -1) 条件成立,a--变成1,执行循环体 do...while
    2、b *= a 得 b 等于1,b++变成2,while(a--) 条件成立,a--变成0,继续执行 do
    3、b *= a 得 b 等于0,b++变成1,while(a--) 条件不成立,a--变成-1,do...while循环退出,返回执行外层循环 while(a-- != -1),条件不成立,a--变成-2,退出循环。
    所以,结果是 a=-2,b=1

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

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 修改了问题 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么