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

请求调试代码:实现注册号反转输出850234,计划用指针处理

问题调试与修正

你的代码存在几个关键错误,导致无法输出预期的反转结果850234,以下是问题分析和修正方案:

错误点梳理

  • 循环条件错误:while (number <= 10) 初始number为432058,远大于10,循环直接跳过,reverseNumber始终为0。正确条件应为while (number > 0),确保数字还有剩余位时持续循环。
  • 数字更新逻辑错误:number= 10; 是直接将number赋值为10,而非去掉最后一位。需改为number /= 10;(等价于number = number / 10;),每次循环丢弃数字的最后一位。
  • 命名空间缺失:代码中使用cout但未指定std::前缀,也未声明using namespace std;,编译时会因找不到cout定义报错。

修正后的基础版本代码

#include <iostream>

int main() {
    int number = 432058;
    int reverseNumber = 0;

    while (number > 0) {
        int digit = number % 10;
        reverseNumber = reverseNumber * 10 + digit;
        number /= 10;
    }

    std::cout << "M.Estahsan --> Reversed Registration Number: " << reverseNumber << std::endl;

    return 0;
}

运行这段代码即可得到预期输出850234。

基于指针的实现版本

如果你想按原计划用指针处理变量,这里提供指针版本的实现:

#include <iostream>

int main() {
    int number = 432058;
    int reverseNumber = 0;
    int* numPtr = &number;
    int* revPtr = &reverseNumber;

    while (*numPtr > 0) {
        int digit = *numPtr % 10;
        *revPtr = *revPtr * 10 + digit;
        *numPtr /= 10;
    }

    std::cout << "M.Estahsan --> Reversed Registration Number: " << *revPtr << std::endl;

    return 0;
}

该版本通过指针numPtr和revPtr分别指向number和reverseNumber,解引用指针完成变量操作,同样能得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:42:36