目前主要分为三个专栏,后续还会添加:
专栏如下: C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
思路 :
可以把题目示例中的正方形看成 两个部分
行 为一部分 列为一部分
i和j为0的时候 打印一行或者一列
其次 当 i==n-1 , j==n-1 的时候 打印一行或者一列
1.i==0 的时候打印一整行2.j==0的时候打印一整列3.i==n-1 的时候 打印一个
4.j==n-1 的时候 打印一个 就可以看到绿色箭头所指的地方 正好就是j== 5-1=4
代码 1 :
/*思路 : 可以把题目示例中的正方形看成 两个部分
行 为一部分 列为一部分
i和j为0的时候 打印一行或者一列
其次 当 i==n-1 , j==n-1 的时候 打印一行或者一列
1.i==0 的时候打印一整行2.j==0的时候打印一整列3.i==n-1 的时候 打印一个
4.j==n-1 的时候 打印一个 就可以看到绿色箭头所指的地方 正好就是j== 5-1=4
*/
# include <stdio.h>
int main ()
{
int n=0;
while(scanf("%d",&n)!=EOF)
{
int i =0;
//控制行
for(i = 0; i < n; i++)
{
int j = 0;
for(j = 0; j < n;j++)
{
// i和j为0的时候 打印一行或者一列
// 其次 当 i==n-1 , j==n-1 的时候 打印一行或者一列
if (i==0||j==0||i==n-1||j==n-1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
代码 2 :
void print(int num)
{
int i,j;
for(i = 0; i < num; i++)
{
for(j = 0; j < num; j++)
{
if(i == 0 || i == num - 1 || j == 0 || j == num -1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
int main()
{
int num;
while(scanf("%d",&num) != EOF)
{
print(num);
}
return 0;
}
函数表示