1、要求
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
a、如下所示:
输入:4
输出:
输入:5
输出:
......
2、个人思路与实现
a、个人大概的思路:
1) 先实现正方形外形(两个嵌套的for循环).
2) 再实现一个可以使正方形内部镂空的表达 (if else分支语句).
b、具体的实现
如下所示:
#include <stdio.h>
int main() {
int a=0;
while(scanf("%d",&a) != EOF) //此while循环是多组实现,如执行后欲退出程序需输ctrl+z.
{
int j=0;//行
int i=0;//列
for(i=0;i<=a-1;i++)
{
for(j=0;j<=a-1;j++)
{
if((i>0&&i<a-1)&&(j>0&&j<a-1))
{
printf(" ");
}
else
{
printf("* ");
}
}
printf("\n");
}
}
return 0;
}
3、个人感受总结
(难度系数:中等)
对于此题个人认为在思路 2)中的实现相对初学者稍有难度,需要捋清行跟列之间的关系(如我上面代码实现中的if的判断条件),此题个人用到了循环语句和分支语句,做的时候认真仔细想一想,不要心急 ,多尝试,在实现中不断改正。