PTA | 程序设计类实验辅助教学平台 (pintia.cn)
解题思路:这就是简单的打印图形,但是有一点要注意,那就是奇偶数问题。
1.当n为偶数时,需要打印 n / 2 行,每行 n 个字符;
2.当n为奇数时,题目说四舍五入取整,也就是说需要打印(n+1)/ 2 行,每行n个字符。
#include <iostream>
using namespace std;
int main() {
int N,temp;
char C;
cin>>N>>C;
if (N%2 ==1) temp=N/2+1; //n为奇数
else temp=N/2; //n为偶数
for(int i=0; i<temp; i++)//行
{
if(i==0 || i==temp-1) //只要第一行和最后一行全部打印满
{
for(int j=0; j<N; j++) cout<<C;
}
else
{ //其他行都只第一位和最后一位输出字符,剩下的位全部输出空格
cout<<C;
for(int j=0; j<N-2; j++) cout<<" ";
cout<<C<<endl;
}
if(i==0) cout<<endl; //第一行打印完之后要换行打印
}
return 0;
}