TB椰程 TypeBuddy 打字搭子

【例38.2】 图形输出

C++语法 · 循环结构 · 代码 · cpp · 难度 4/5 · 共 755 字

按类型输出正方形或菱形

  • C++语法
  • 例题

正文

// 原题:https://oj.yecheng.tv/p/P228
// 题意:输入类型字母和边长 x:
//       Z 输出 x 行 x 列的正方形,
//       L 输出边长为 x 的实心菱形。
// 思路:菱形共 2x-1 行,行号到中线的距离
//       决定空格数和星号数。
#include <iostream>
using namespace std;

int main() {
    char type;
    int x;
    cin >> type >> x;
    if (type == 'Z') {
        // 正方形:每行 x 个星号
        for (int i = 0; i < x; i++) {
            for (int j = 0; j < x; j++) cout << "*";
            cout << endl;
        }
    } else {
        // 菱形:2x-1 行,逐行对称
        for (int i = 0; i < 2 * x - 1; i++) {
            int d = x - 1 - i;
            if (d < 0) d = -d;
            for (int s = 0; s < d; s++) cout << " ";
            for (int j = 0; j < 2 * (x - d) - 1; j++) cout << "*";
            cout << endl;
        }
    }
    return 0;
}

C++语法 · 循环结构的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK