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

嵌套循环编程求助:如何实现指定数字图案输出

问题:嵌套循环打印指定图案

目标图案

1
2 2
3 3 3
4 4 4 4
5 5 5 5 5

实现要求

  1. 使用两层嵌套for循环
  2. 外层循环控制行号(从1到5)
  3. 内层循环需打印行号row次,当row为3时,应输出"3 3 3"
  4. 每行末尾需换行

当前错误代码

#include <iostream>

using namespace std;

int main()
{
   for (int rows = 1; rows <= 5; rows++) 
   {
       for (int line = rows; line <= 5; line++)
       {
           cout << rows;
           if (line < rows)
           {
               cout << "-";
           }
           cout << endl;
       }
   }

    return 0;
}

当前错误输出

1
1
1
1
1
2
2
2
2
3
3
3
4
4
5

核心困惑

如何让每行打印的数字数量与行号对应?


解答

你的代码有三个关键问题:

  1. 内层循环的条件完全错误:当前写法会让第rows行执行5 - rows + 1次,和「每行打印rows次数字」的需求完全相反。
  2. 换行语句放在了内层循环里,导致每次打印数字后都换行,无法实现同一行打印多个数字。
  3. 分隔符用了-而非要求的空格,且判断逻辑不成立。

修正后的代码如下:

#include <iostream>

using namespace std;

int main()
{
    for (int rows = 1; rows <= 5; rows++) 
    {
        // 内层循环控制当前行的数字打印次数,从1到rows
        for (int col = 1; col <= rows; col++)
        {
            cout << rows;
            // 非最后一个数字时,打印空格分隔
            if (col < rows)
            {
                cout << " ";
            }
        }
        // 整行数字打印完成后再换行
        cout << endl;
    }

    return 0;
}

逻辑说明

  • 外层循环rows从1到5,既代表当前行号,也代表每行需要打印的数字内容。
  • 内层循环col从1到rows,控制当前行打印数字的次数:比如rows=4时,循环4次,打印4个4。
  • 内层循环中通过col < rows判断是否需要打印空格,避免行尾出现多余空格。
  • 换行语句放在外层循环的内层循环之后,确保整行数字打印完成后才换行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 14:34:53