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

C++如何实现输入≤9输出无前导0、>9输出两位前导0数字序列

问题修复方案

你现有代码的问题主要有三点:

  • 没有区分输入≤9和>9的输出规则,统一输出两位补零格式,不符合≤9时无前置零的要求
  • 未实现输入>9时每输出10个数字自动换行的逻辑
  • 冗余声明了变量a,存在重复定义的隐患
可直接运行的修改后代码
#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
    int num;
    cin >> num;

    // 范围校验逻辑保留
    if (num > 100 || num <= 1){
        cout << "OUT OF RANGE";
    }
    // 新增≤9的场景分支
    else if (num <= 9) {
        for (int a = 1; a < num; a++){
            cout << a << ".";
        }
        cout << num;
    }
    // 处理>9的场景,补充换行逻辑
    else {
        for (int a = 1; a <= num; a++){
            // setw仅对下一次输出生效,setfill会持续生效
            cout << setfill('0') << setw(2) << a;
            // 非最后一个数字补充点分隔符
            if (a != num) {
                cout << ".";
            }
            // 每输出10个数字换行
            if (a % 10 == 0) {
                cout << endl;
            }
        }
        // 重置填充符为默认空格,避免影响后续其他输出
        cout << setfill(' ');
    }
    return 0;
}
逻辑说明
  1. 保留原有范围校验规则,输入≤1或>100时直接输出错误提示
  2. 输入在2~9区间时,直接输出无前置零的数字,用点分隔即可
  3. 输入≥10时:
    • 所有数字统一用setw(2)指定输出宽度为2位,setfill('0')指定空位用0填充,实现前置补零效果
    • 每输出10个数字触发一次换行,符合格式要求
    • 输出完成后重置填充符为默认的空格,避免后续输出被异常补零

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:48:01