空心正方形图案:题目链接

#include<stdio.h>
int main()
{
int n=0;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
if(i==0||i==n-1)
{
for(int j=0;j<n;j++)
{
printf("* ");
}
printf("\n");
}
else
{
printf("*");
for(int j=0;j<2*n-3;j++)
{
printf(" ");
}
printf("*");
printf("\n");
}
}
}
}

该题需要注意的是,多组输入整形,那我们要用一个循环scanf来接收,scanf和getchar一样,没东西接收就返回一个-1(EOF)
然后就是除了第一行和最后一行,中间的空格是(n-1)+(n-2)=2n-3个
n-1是原本两*之间的空格数,n-2是原本 *的位置变成的空格。
版权声明:本文为m0_57180439原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。