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

C++查找三位整数最大数位问题及代码错误求助

问题排查与实现方案

现有代码错误点

  • 仅提取了一次个位数位就直接输出,没有遍历三位整数的另外两个数位,也没有任何大小比较逻辑
  • num / 10; 是无效运算,没有将计算结果赋值回num变量,num的数值全程没有发生变化
  • 没有覆盖三位整数的全数位处理逻辑,自然无法得到最大数位结果

正确实现思路

因为题目明确是三位整数,我们可以按以下步骤实现:

  1. 读取输入的三位整数
  2. 初始化最大值为第一个提取的个位数位
  3. 连续处理剩余的十位、百位两个数位:
    • 将原数整除10,移除已经处理过的最右侧数位
    • 提取当前最右侧数位
    • 和当前最大值对比,若更大则更新最大值
  4. 所有数位处理完成后输出最大值

可运行参考代码

适配三位整数的版本

#include<iostream>
using namespace std;

int main() {
    int num, max_digit;
    cin >> num;
    // 先取个位作为初始最大值
    max_digit = num % 10;
    // 处理十位
    num = num / 10;
    int current = num % 10;
    if (current > max_digit) max_digit = current;
    // 处理百位
    num = num / 10;
    current = num % 10;
    if (current > max_digit) max_digit = current;
    // 输出结果
    cout << max_digit;
    return 0;
}

适配任意位数正整数的通用版本

#include<iostream>
using namespace std;

int main() {
    int num, max_digit = 0;
    cin >> num;
    while (num > 0) {
        int current = num % 10;
        if (current > max_digit) max_digit = current;
        num = num / 10;
    }
    cout << max_digit;
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:39:05