输入打印正方形本身没有难度,这个题的要点是输出的行数实际上是列数的50%(四舍五入取整),如何实现四舍五入是一个问题,当时我想了半天都没有特别好的办法,后来去网上找找到了
double f;
//x就是四舍五入的结果
int x=(int)(f+0.5);
之后就是直接打印正方形了
#include <iostream>
using namespace std;
void print(char c,int n);
int main()
{
int x;
char c;
cin>>x;
getchar();
cin>>c;
print(c,x);
}
void print(char c,int n)
{
for(int i=0;i<n;i++)
cout<<c;
cout<<endl;
int x=(int)((double)(n)/2+0.5);
for(int i=0;i<x-2;i++)
{
cout<<c;
for(int j=0;j<n-2;j++)
cout<<" ";
cout<<c<<endl;
}
for(int i=0;i<n;i++)
cout<<c;
}