题目
思路
第一行全打印,
最后一行全打印。
中间的行仅当下标为0或者n-1时打印字符,其他下标位置输出空格。
注意!易错点
要求行数是列数的50%,也就是需要计算题目给定的N四舍五入取整之后的值!!!
10/2=5, 11/2=5.5(四舍五入后应该为6)所以N/2四舍五入取整的值应为:(int)(N/2+0.5)
代码
#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=1; i<=(int)(n/2.0+0.5)-2; i++){
for(int j=0; j<n; j++){
if(j==0) cout<<c;
else if(j==n-1) cout<<c<<endl;
else cout<<" ";
}
}
for(int i=0; i<n; i++) cout<<c;
return 0;
}