You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++数字逆序输出程序执行流程及输出逻辑问询

程序执行流程详解

咱们一步一步拆解这段代码的运行过程,你就能立刻明白为什么输入32会输出23啦~

首先先看你的完整代码:

#include <iostream> 
int main() { 
    int nr; 
    std::cin>>nr; 
    while (nr > 0) { 
        int digit = nr % 10; 
        nr /= 10; 
        std::cout<<digit; 
    } 
    return 0; 
}

当你输入32时,程序的每一步执行细节如下:

  • 初始赋值:输入的32被存入变量nr,此时nr = 32。
  • 第一次进入while循环(因为32 > 0,循环条件成立):
    1. digit = nr % 10:%是取余运算符,32 % 10得到最后一位数字2,所以digit的值是2。
    2. nr /= 10:这是整数除法的简写(等价于nr = nr / 10),32 / 10的结果是3(整数除法会舍去小数部分),此时nr变成3。
    3. std::cout<<digit:把digit的值2输出到控制台,此时屏幕上显示2。
  • 第二次进入while循环(此时nr = 3 > 0,循环条件仍然成立):
    1. digit = nr % 10:3 % 10的结果是3,digit的值更新为3。
    2. nr /= 10:3 / 10的整数结果是0,nr现在变成0。
    3. std::cout<<digit:把digit的值3输出到控制台,屏幕上的内容就变成了23。
  • 循环终止:现在nr = 0,不满足nr > 0的循环条件,循环退出,程序正常结束。

简单来说,你写的while循环会反复执行里面的代码块,直到nr变成0为止。第一次循环处理并输出了最后一位2,第二次循环处理剩下的首位3,两者连续输出就组成了23,而不是只输出一次哦~

内容的提问来源于stack exchange,提问作者Darius Valeriu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:28:25