C 语言实现:输入层数打印“剥洋葱”字母图形,附代码详解
以下是实现“剥洋葱”图形打印的C语言代码: ```c #include <stdio.h> int main() { int n; // 读取输入的层数 scanf("%d", &n); int size = 2 * n - 1; // 外层循环控制行数 for (int i = 0; i < size; i++) { // 内层循环控制列数 for (int j = 0; j < size; j++) { // 计算当前位置到中心的水平和垂直距离 int distX = (i < n)? i : size - i - 1; int distY = (j < n)? j : size - j - 1; // 取最小距离 int minDist = (distX < distY)? distX : distY; // 计算要打印的字符 char ch = 'A' + minDist; // 打印字符 printf("%c", ch); } // 换行 printf("\n"); } return 0; } ``` 代码说明: 1. 输入读取:通过`scanf`函数读取用户输入的图形层数`n`。 2. 图形大小计算:根据层数`n`计算图形的边长`size`,其值为`2 * n - 1`。 3. 双重循环:外层循环控制行数,内层循环控制列数。 4. 距离计算:对于每个位置`(i, j)`,计算其到图形中心的水平距离`distX`和垂直距离`distY`,并取两者中的最小值`minDist`。 5. 字符计算:根据`minDist`计算要打印的字符,字符为`'A' + minDist`。 6. 输出:打印字符,并在每行结束时换行。 复杂度分析: - 时间复杂度:$O((2n - 1)^2)$,因为需要遍历整个图形的每个位置。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 488点数解答 | 2025-11-15 18:49:17]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)343
- Python 实现:打印 -n 到 n 范围内所有整数的代码及详解(字节豆包 | 232点数解答 | 2025-12-07 12:30:06)75
- Python代码:轻松打印 0 到输入整数之间的所有整数(字节豆包 | 126点数解答 | 2025-12-12 18:21:54)39
- C++实现:输入整数打印 0 到该整数间所有整数及代码详解(字节豆包 | 228点数解答 | 2025-12-12 18:22:24)52
- Python实现:打印0到输入整数间所有整数的代码解析(字节豆包 | 264点数解答 | 2025-12-12 19:37:01)40
- Python 实现:打印 -n 到 n 范围内所有整数的代码及详解(字节豆包 | 214点数解答 | 2025-12-12 19:40:30)47
- Python实现:打印 0 到 n 之间所有整数的高效方法(讯飞星火 | 569点数解答 | 2025-12-17 12:23:47)55
- Python实现:打印从 -n 到 n 范围内所有整数的代码详解(讯飞星火 | 660点数解答 | 2025-12-17 17:30:53)32
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)226
- 揭秘!十进制整数转其他进制用啥存储结构最合适?答案竟是它!(字节豆包 | 57点数解答 | 2024-11-13 01:21:11)234
- C语言实现:从压缩字符串还原出原始字符串的代码解析(字节豆包 | 299点数解答 | 2024-11-10 19:31:07)281
- C语言:从“长度+字母”压缩串还原原始字符串的代码实现(GPT | 600点数解答 | 2024-11-14 18:24:57)172