问题:
从键盘输入一个数,表示正方形的边的*个数,从而打印出空心正方形。
思路:
- 一般这种图形题都是观察出来的。
- 发现第一行和最后一行,都是全打印*
- 其余行则是第一个和最后一个打印*,其余位置为空格。
- 此外正方形可看成二维的,外循环for代表行,内循环代表列。
- 在外循环中,分两种情况,一种是当行为第一个或者最后一个时,该行全打印*;当行不属于两者时,第一个和最后一个打印* ,其余打印空格。
- 由于计算机打印到屏幕,有格式问题,所以观察每次打印时,行和列的关系即可。
代码如下:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i,k,t;
for(i=0;i<n;i++)//表示行
{
if(i==0||i==n-1)//第一行和最后一行时情况
{
for(k=0;k<n;k++)//对列的情况进行打印
{
printf("* ");