#include<iostream> using namespace std; int main() { int n; char c; int row; cin>>n>>c; for(int i=1;i<=n;i++) { row=i; if(row==1||row==n) { for(int j=0;j<n;j++) cout<<c; } else { cout<<c; for(int j=0;j<n;j++) cout<<" ";
cout<<c;
} //写到这里时候发现了小问题,如果判断是第一行的的话,回车放在哪。
}
}
写完后
#include<iostream> using namespace std; int main() { int n; char c; int row; cin>>n>>c; for(int i=1;i<=n;i++) { row=i; if(row==1||row==n) { for(int j=0;j<n;j++) cout<<c; } else { cout<<endl; cout<<c; for(int j=0;j<(n+1)/2-2;j++){ cout<<" "; } cout<<c; } } return 0; }
如想按此思路解决,还需再加些条件。。不划算,放弃,可改为单行单行输出
值得一题的是 将行数的判断直接加进到了for条件中
#include<iostream> using namespace std; int main(){ int n; char c; cin>>n>>c; for(int i=0;i<n;i++)cout<<c; cout<<endl; for(int i=0;i<(n+1)/2-2;i++) //因为转换int 舍去小数部分。 { cout<<c; for(int i=1;i<n-1;i++)cout<<" "; cout<<c<<endl; } if(n>=2) for(int i=0;i<n;i++) cout<<c; return 0; }
原文:https://www.cnblogs.com/leamant/p/13286446.html