用C程序编写一个程序,用星号拼出O的图形
本文将分享一个简单而经典的C语言练习题:使用*符号在终端绘制出大写字母O。提供详细代码分析、时间复杂度、空间复杂度讲解以及运行效果展示,帮助读者掌握嵌套循环与条件判断的编程技巧。
一、完整C语言绘图代码
#include <stdio.h>
int main() {
int row, column;
int row_length = 10; // 总行数
int column_length = 10; // 总列数
for (row = 1; row <= row_length; row++) {
for (column = 1; column <= column_length; column++) {
if (column == 1 || column == column_length) {
// 第一列与最后一列输出*
printf("*");
} else if (row == 1 || row == row_length) {
// 第一行与最后一行输出*
printf("*");
} else {
// 其他位置输出空格
printf(" ");
}
}
printf("\n");
}
return 0;
}
二、运行结果展示
**********
* *
* *
* *
* *
* *
* *
* *
* *
**********
🎨效果说明:
- 外框由
*组成; - 内部为空心矩形,模拟了字母O的轮廓。
三、图案绘制逻辑
| 判断条件 | 输出 |
|---|---|
第一列(column == 1) | * |
最后一列(column == column_length) | * |
第一行或最后一行(row == 1 或 row == row_length) | * |
| 其他区域 | 空格 |
四、时间复杂度分析
- 外层循环执行
row_length次; - 每次内层循环执行
column_length次; - 每次条件判断为常数操作。
时间复杂度:
O(row_length×column_length)=O(n2)
O(row\_length \times column\_length) = O(n^2)
O(row_length×column_length)=O(n2)
五、空间复杂度分析
- 仅使用了几个简单的整型变量;
- 不依赖数组、指针等数据结构。
空间复杂度:
O(1)
O(1)
O(1)
六、代码特点总结
| 项目 | 内容 |
|---|---|
| 绘制图案 | 字母 O |
| 绘图方式 | 上下边框 + 左右边框 |
| 时间复杂度 | O(n²) |
| 空间复杂度 | O(1) |
| 编程难度 | ⭐ |

被折叠的 条评论
为什么被折叠?



