在C语言编程中,绘制星号图案是一个经典且实用的练习。这不仅可以帮助你熟悉C语言的循环结构,还能让你更好地理解二维数组的用法。下面,我将介绍几种简单的方法来绘制不同的星号图案。
1. 使用嵌套循环
这是最基本的方法,通过嵌套循环来控制星号的位置。
示例:绘制一个直角三角形星号图案
#include <stdio.h>
int main() {
int i, j, rows = 5;
for (i = 1; i <= rows; ++i) {
for (j = 1; j <= i; ++j) {
printf("* ");
}
printf("\n");
}
return 0;
}
输出结果:
*
* *
* * *
* * * *
* * * * *
示例:绘制一个倒置直角三角形星号图案
#include <stdio.h>
int main() {
int i, j, rows = 5;
for (i = rows; i >= 1; --i) {
for (j = 1; j <= i; ++j) {
printf("* ");
}
printf("\n");
}
return 0;
}
输出结果:
* * * * *
* * * *
* * *
* *
*
2. 使用二维数组
通过二维数组,我们可以更灵活地控制星号的位置。
示例:绘制一个空心正方形星号图案
#include <stdio.h>
int main() {
int i, j, rows = 5;
int arr[rows][rows];
// 初始化二维数组
for (i = 0; i < rows; ++i) {
for (j = 0; j < rows; ++j) {
arr[i][j] = 0;
}
}
// 填充星号
for (i = 0; i < rows; ++i) {
arr[i][0] = 1;
arr[i][rows - 1] = 1;
}
for (j = 1; j < rows - 1; ++j) {
arr[0][j] = 1;
arr[rows - 1][j] = 1;
}
// 打印图案
for (i = 0; i < rows; ++i) {
for (j = 0; j < rows; ++j) {
if (arr[i][j]) {
printf("* ");
} else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
输出结果:
* *
* * *
* *
* *
* *
3. 使用函数
将绘制图案的代码封装成函数,可以提高代码的可读性和可重用性。
示例:绘制一个空心正方形星号图案的函数
#include <stdio.h>
void printPattern(int rows) {
int i, j;
int arr[rows][rows];
// 初始化二维数组
for (i = 0; i < rows; ++i) {
for (j = 0; j < rows; ++j) {
arr[i][j] = 0;
}
}
// 填充星号
for (i = 0; i < rows; ++i) {
arr[i][0] = 1;
arr[i][rows - 1] = 1;
}
for (j = 1; j < rows - 1; ++j) {
arr[0][j] = 1;
arr[rows - 1][j] = 1;
}
// 打印图案
for (i = 0; i < rows; ++i) {
for (j = 0; j < rows; ++j) {
if (arr[i][j]) {
printf("* ");
} else {
printf(" ");
}
}
printf("\n");
}
}
int main() {
int rows = 5;
printPattern(rows);
return 0;
}
输出结果:
* *
* * *
* *
* *
* *
通过以上方法,你可以轻松地在C语言中绘制各种星号图案。这些图案不仅可以帮助你练习C语言编程,还可以作为装饰或艺术作品。希望这篇文章能帮助你更好地理解C语言中绘制星号图案的方法。
