You need to enable JavaScript to run this app. C++初学嵌套for循环时,如何实现输出内容右对齐?
优惠活动
大模型
产品
解决方案
定价
更多

C++初学嵌套for循环时,如何实现输出内容右对齐?

嵌套for循环实现右对齐星号图案的方法

核心实现逻辑

  • 现有代码的星号输出逻辑完全不用改:当前循环跑下来,第y行(y从1到5)会输出6-y个连续星号,已经搭好了从5个星逐行减1个的基础框架
  • 右对齐的本质就是给每一行补前置空格:整行要保持5个字符的总宽度(和最长的第一行5个星的长度对齐),用空格把星号整体推到最右侧
  • 前置空格的数量直接算就行:第y行需要打y-1个空格,空格数加当前行的星号数刚好凑够5个字符的固定宽度

改造后的完整可运行代码

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    int x,y;

    for (y=1; y<=5; y++)
    {
        // 新增内层循环:打印当前行的前置空格
        for (x=1; x<=y-1; x++)
        {
            cout << " ";
        }
        // 原有逻辑:打印对应数量的星号
        for (x=y; x<=5; x++)
        {
            cout << "*";
        }
        cout << endl;
    }
    getch();
}

实际输出效果对照

代码跑出来每一行的内容是完全对齐右侧的:

  • 第1行:*****(0个空格 + 5个星号)
  • 第2行: ****(1个空格 + 4个星号)
  • 第3行: ***(2个空格 + 3个星号)
  • 第4行: **(3个空格 + 2个星号)
  • 第5行: *(4个空格 + 1个星号)

提醒:这个练习的核心是掌握嵌套for循环的用法,别直接靠流的右对齐控制函数偷懒,跳过循环逻辑是达不到课程练习目的的。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.08 17:54:08