思路
- 将该图形分成上下两部分分别输出;
- 找到空格和星每一行的规律。
知识点
- 找规律
- 嵌套循环的用法
代码实现
#include <iostream>
using namespace std;
int main() {
int n, i, j;
cin >> n;
//输入上半部分
//i控制行数
for(i = 1; i < n; i++) {
//j输出空格
for(j = 1; j <= n - i; j++) {
cout << " ";
}
//k输出星
for(j = 1; j <= n + 2 * (i - 1); j++) {
if(i == 1 or j == 1 or j == n + 2 * (i - 1)) {
cout << "*";
} else {
cout << " ";
}
}
cout << endl;
}
//输入x下半部分
//i控制行数
for(i = n; i > 0; i--) {
//输出空格
for(j = 1; j <= n - i; j++) {
cout << " ";
}
//输出星
for(j = 1; j <= n + 2 * (i - 1); j++) {
if(i == 1 or j == 1 or j == n + 2 * (i - 1)) {
cout << "*";
} else {
cout << " ";
}
}
cout << endl;
}
return 0;
}