分析:
与金字塔形状图案题目类似,参考链接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; }
总结:
金字塔图案类似题目,举一反三即可。