C++ 实现放大箭头图案 - GESP 二级

题目描述

请打印 n 行的放大的箭头(n 一定是一个奇数)。

示例:

假设输入 n 为 5,则输出如下(用 '□' 代表空格,实际输出时请输出空格):

*****
'□'*****
'□' '□'*****
'□'*****
*****

输入描述

一个整数 n,代表图形的行数(n 一定是一个奇数)。

输出描述

n 行的图形。

用例输入 1

5

用例输出 1

*****
'□'*****
'□' '□'*****
'□'*****
*****

代码实现

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    for(int i=0; i<n; i++) {
        for(int j=0; j<i; j++) {
            cout << ' '; // 打印空格
        }
        for(int j=0; j<n; j++) {
            cout << '*';
        }
        cout << endl;
    }
    
    for(int i=0; i<n; i++) {
        for(int j=0; j<n-1; j++) {
            cout << ' '; // 打印空格
        }
        cout << '*' << endl;
    }
    
    for(int i=0; i<n-1; i++) {
        for(int j=0; j<n-1-i; j++) {
            cout << ' '; // 打印空格
        }
        for(int j=0; j<n; j++) {
            cout << '*';
        }
        cout << endl;
    }
    
    return 0;
}

代码分析

代码通过三个嵌套循环实现图案的打印。

  • 第一个循环打印箭头顶部部分。
  • 第二个循环打印箭头中间部分。
  • 第三个循环打印箭头底部部分。

注意:

  • 本题中,代码使用 cout << ' '; 打印空格,而不是 cout << ' ';,因为后者会打印两个空格,导致图案格式错误。

总结

本题是一道简单的 C++ 编程练习题,涉及到嵌套循环和字符串输出的基本操作。通过本题,您可以更好地理解嵌套循环的使用,并提高 C++ 语言的编程能力。


原文地址: https://www.cveoy.top/t/topic/qjeU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录