
解法一:直接打印
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i = 0; i < n; i++){
cout<<"*";
for(int j = 1; j < n - 1; j++){
if(j == i || j == n-1-i || i == n-1 ){
cout<<"*";
}else{
cout<<" ";
}
}
cout<<"*"<<endl;
}
}
解法二:用二维数组取存储
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
vector<vector<string>> a(n,vector<string>(n," ")); //初始化为两个空格
for (int i = 0; i < n; i++){
a[i][0] = "* ";
a[i][n-1] = "* ";
}
for(int j = 0; j < n; j++){
a[n-1][j] = "* ";
}
for(int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
if(i == j || j == n - 1 - i){
a[i][j] = "* ";
}
}
}
for(int i = 0; i < n; i++){
for (int j = 0; j < n; j++){
cout<<a[i][j];
}
cout<<endl;
}
}