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

C++实现重复阶梯星号图案输出 调整现有代码实现逐列展示效果

C++ 星号图案逐步输出实现方案

实现效果说明

  • 输入正整数x后,会先仅展示图案最右侧列,每隔固定时间向左增加一列,直到完整展示目标图案
  • 最终图案完全匹配要求的重复阶梯规律,输入为4时输出和示例完全一致

调整后完整代码

#include <iostream>
#include <algorithm> // 用于min函数
using namespace std;

// 跨平台兼容清屏、延时逻辑
#ifdef _WIN32
#include <windows.h>
#define CLEAR_SCREEN system("cls")
#define DELAY(ms) Sleep(ms)
#else
#include <unistd.h>
#define CLEAR_SCREEN system("clear")
#define DELAY(ms) usleep(ms * 1000)
#endif

int main() {
    int x;
    cin >> x;
    const int block_width = x + 1; // 星块总宽度,保证对齐效果

    // 逐阶段展示:stage从1到x,对应从仅展示最右1列到展示所有列
    for (int stage = 1; stage <= x; stage++) {
        CLEAR_SCREEN;
        // 打印x行图案
        for (int i = 1; i <= x; i++) {
            int print_block_cnt = min(stage, i);
            // 打印前置对齐空格
            for (int s = 0; s < (i - print_block_cnt) * block_width; s++) {
                cout << " ";
            }
            // 打印当前阶段需要展示的星块
            for (int b = 0; b < print_block_cnt; b++) {
                // 打印星号
                for (int star = 0; star < i; star++) {
                    cout << "*";
                }
                // 打印块间分隔空格,最后一个块不需要
                if (b != print_block_cnt - 1) {
                    for (int s = 0; s < block_width - i; s++) {
                        cout << " ";
                    }
                }
            }
            cout << endl;
        }
        DELAY(800); // 每阶段停留时长,单位为毫秒,可自行调整
    }
    return 0;
}

核心修改点

  • 移除原有重复打印相同图案的无效逻辑,新增stage外层循环控制展示阶段,实现从右到左逐列显示的效果
  • 新增块宽度对齐规则,每个星号块按固定宽度排版,保证整体阶梯对齐效果匹配示例
  • 增加跨平台清屏与延时逻辑,实现流畅的逐步展示动画
  • 调整行内打印逻辑,按当前展示阶段打印对应数量的星号块,符合逐步展示要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:18:01