这是一个我犯过错的坑,这个坑就是当你用printf("\n");语句换行的时候,纵向的边的长度实际上是由字符和换行的一些宽度来构成的,也就是无需换两次行,这一点是我之前一直没明白的。。。所以打印出来的正方形就会类似下面的效果:
因此,我们就可以按照下面的程序进行输出,很简单:
#include<cstdio>
int main()
{
int i, row, col;
char c;
while(scanf("%d %c", &col, &c) != EOF)
{
if(col % 2 == 1) row = col/2 +1;
else row = col/2;
for(i = 0; i < col; i++){printf("%c", c);}
printf("\n");
for(i = 2; i < row; i++)
{
printf("%c", c);
for(int k = 1; k < col-1; k++)
{
printf(" ");
}
printf("%c\n", c);
}
for(i = 0; i < col; i++){printf("%c", c);}
}
return 0;
}
以后注意就好。。。
版权声明:本文为wanyun_qian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。