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

C++打印数字三角图案时添加数字间空格导致样式错乱问题咨询

C++数字三角图案空格分隔异常解决方案

问题根因

你在每个数字后追加空格后,单个数字的实际输出占位从1个字符变为2个字符(数字本身+1个分隔空格),但你原先的前导填充逻辑还是按照每个数字占1个字符计算缩进量,所以会出现缩进不足、图案错位的问题。

修复方案

只需要调整前导空格的打印次数,将原先的n-i次修改为2*(n-i)次即可,保证前导缩进和后续数字的占位宽度匹配。

修改后的完整代码

#include<iostream>
using namespace std;
int main(){
    int i,j=1,space,star,n;
    cin>>n;
    i=1;
    while(i<=n){
        space = 2*(n-i); // 仅修改这一行,前导空格数翻倍匹配数字占位宽度
        while(space){
            cout<<" ";
            space--;
        }
        star=i;
        while(star){
            cout<<j<<" ";
            j++;
            star--;
        }
        cout<<"\n";
        i++;
    }
    return 0;
}

输出验证(n=4时)

输入4后输出结果如下,符合预期的对齐效果:

1 
    2 3 
  4 5 6 
7 8 9 10 

注:你提供的预期输出中第三行开头为3属于笔误,按照连续递增的逻辑第三行应为4 5 6,若你需要数字行首重置的特殊逻辑可以自行调整j的赋值规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:36:04