[题目描述]
马克最近在打一个叫魔兽争霸3的游戏,这个游戏可以控制兵推掉对面的老家,而这个游戏阵型很重要,马克现在要排成一个菱形,所以请你帮河伯排一下阵型
输入
n k
n为int,表示需要排成的整形的行数 k为char,表示排成阵型的字符
n为奇数
输出
阵型。
样例输入
3 ^
样例输出
^
^^^
^^^^^
^^^
^
提示
n<=100
☑解题思路
这道题可以使用循环来创建阵型。
首先,我们可以先打印出上半部分的阵型。我们可以使用两个循环来控制行数和空格的数量。第一个循环用来控制行数,从0到n-1,每次增加1。第二个循环用来打印空格,从n-1行开始,每次减少1。然后,我们再使用一个循环来打印每行的字符,从0到2*i,每次增加1。这样就可以打印出上半部分的阵型。
接下来,我们再打印下半部分的阵型。同样使用两个循环来控制行数和空格的数量。第一个循环用来控制行数,从n-2到0,每次减少1。第二个循环用来打印空格,从0行开始,每次增加1。然后,我们再使用一个循环来打印每行的字符,从0到2*i,每次增加1。这样就可以打印出下半部分的阵型。
最后,我们再输出中间的那一行,即n行。然后,整个阵型就完成了。
☑答案
#include <iostream>
using namespace std;
int main() {
int n;
char k;
cin >> n >> k;
// 上半部分阵型
for (int i = 0; i < n; i++) {
// 打印空格
for (int j = n-1; j > i; j--) {
cout << " ";
}
// 打印字符
for (int j = 0; j < 2*i+1; j++) {
cout << k;
}
cout << endl;
}
// 下半部分阵型
for (int i = n-2; i >= 0; i--) {
// 打印空格
for (int j = 0; j < n-1-i; j++) {
cout << " ";
}
// 打印字符
for (int j = 0; j < 2*i+1; j++) {
cout << k;
}
cout << endl;
}
// 中间行
for (int i = 0; i < n-1; i++) {
cout << " ";
}
return 0;
}
☑so,你学废了吗?
本文章为zovetr小面包有点甜撰写,如有侵权,请及时告知