分析:

与金字塔形状图案题目类似,参考链接https://blog.nowcoder.net/n/86a42f259a0f44d6836d173a05e65141
有所不同的是,本题的行数是固定的为5行,同时组成金字塔的字符是输入得到的,故需要对齐进行对应修改。

题解:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n = 0;
    char val = 0;
    //读入字符
    scanf("%c", &val);
    int space = 4;
    n = 5;
    //外循环遍历每一行
    for(int i = 1; i <= n; ++i) {
        //输出前导的空格
        for(int j = 0; j < space; ++j)
            printf(" ");
        int count = i+i-1;
        bool flag = true;
        //循环count遍,每一个空格输出一个字符,交替输出
        for(int k = 0; k < count; ++k){
            if(flag) {
                printf("%c", val);
                //最后一个是空格
                if(k == count-1)
                    printf(" ");
            }
            else
                printf(" ");
            //更新标志
            flag = !flag;
        }
        printf("\n");
        space--;
    }
    return 0;
}

总结:

金字塔图案类似题目,举一反三即可。