描述
学习了循环,如何去使用循环打印一系列图案的练习。任务是:打印用“*”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
示例1
输入:6
输出:
* | * | * | * | * | * |
* | * | ||||
* | * | ||||
* | * | ||||
* | * | ||||
* | * | * | * | * | * |
#include <stdio.h>
int main() {
int n = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == 0 || i == n - 1) {
printf("* ");
}
else if (j == 0 || j == n - 1) {
printf("* ");
}
else
printf(" ");
}
printf("\n");
}
解题思路:
图案特征:“空心” 正方形图案的四条边由 “* ” 组成,而内部是空白的。
行数与列数:假设要打印的正方形边长为 n,那么图案就有 n 行和 n 列。
打印规则:当处于第一行或者最后一行时,每一列都需要打印 “* ”。
当处于中间行时,只有第一列和最后一列需要打印 “* ”,其余列打印空格。
外层循环:for (int i = 0; i < n; i++) 控制行数,i 表示当前所在的行号。
内层循环:for (int j = 0; j < n; j++) 控制列数,j 表示当前所在的列号。
条件判断:if (i == 0 || i == n - 1 || j == 0 || j == n - 1) 判断当前位置是否位于正方形的四条边上。如果是,则打印一个星号和空格;否则,打印两个空格。
换行操作:printf("\n"); 在每一行打印结束后进行换行,以便输出正方形图案。
用函数来实现空心正方形:
其实很简单就是定义一个空心正方形函数在这个函数去实现空心函数的代码,然后再去调用这个函数我们就可以得到一个空心正方形。
运行结果:
代码实现:
#include <stdio.h>
void kongxinhanshu(int size) {
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (i == 0 || i == size - 1) {
printf("* ");
}
else if (j == 0 || j == size - 1) {
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);
kongxinhanshu(n);
return 0;
}
小小鸡汤:只要坚持不懈,努力上进才能够离理想生活越来越近!!!
(洱海)
大理旅游风景照!!!