最重要的是把一个图形分成多个部分处理
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
//第一行
for(int i=0; i<n-1; ++i){
cout << ' ';
}
cout << '*' << endl;
//2~n行
for(int i=0; i<n-1; ++i){
for(int j=n-2-i; j>0; --j){
cout << ' ';
}
cout << '*';
for(int j=0; j<i*2+1; ++j){
cout << ' ';
}
cout << '*' << endl;
}
//n+1~倒数第二行
for(int i=0; i<n-2; ++i){
for(int j=0; j<i+1; ++j){
cout << ' ';
}
cout << '*';
for(int j=2*(n-i)-5; j>0; --j){
cout << ' ';
}
cout << '*' << endl;
}
//最后一行
for(int i=0; i<n-1; ++i){
cout << ' ';
}
cout << '*' << endl;
return 0;
}