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

C++使用数组实现数字反转功能无输出问题该如何修正?

问题原因及修正点

程序无输出的核心原因是存在死循环,具体需要修正3处问题:

  • 修正while循环内check变量的更新逻辑
    原代码中check=number/10逻辑错误:number是输入的原始固定值,不会随循环变化,比如输入123时每次计算都得到12,check永远不会变为0,程序卡死在while循环,永远不会执行后续输出代码。
    修改为:check = check / 10,每次循环移除check的最后一位,保证循环能正常结束。
  • 修正for循环的遍历边界
    原代码判断条件j <= i存在逻辑错误:i是有效数字的位数计数,所有有效位存储在array1[0]到array1[i-1]的位置,<=i会多输出一个数组初始化的0值,同时存在数组越界风险。
    修改为:j < i,只遍历存储了有效数字的位置。
  • 新增输入为0的兼容逻辑(可选)
    如果用户输入0,原代码不会进入while循环,也不会有任何输出,可以在reverse函数开头新增判断:if(number == 0) { cout << 0; return 0; }覆盖该场景。

修正后的reverse函数代码

int reverse(int number){
    // 兼容输入为0的场景
    if(number == 0) {
        cout << 0;
        return 0;
    }
    int last=0;
    int i=0;
    int array1[10]={0};
    int check=number;
    while (check!=0){
        last=check%10;
        array1[i]=last;
        i++;
        // 修正check更新逻辑
        check=check/10;
    }
    // 修正遍历边界
    for (int j = 0; j < i; ++j) {
        cout<<array1[j];
    }
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:03