字符空心正方形构造:C++与Python实现详解
**这是一个基础的字符图形输出问题。** 下面提供 **C++、Python** 两种常用语言的实现,并附上详细解释。 --- ### 🔷 C++ 实现 ```cpp #include <iostream> using namespace std; int main() { char ch; cin >> ch; for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 4; j++) { // 判断是否为边界(第一行、最后一行、第一列、最后一列) if (i == 1 || i == 4 || j == 1 || j == 4) { cout << ch; } else { cout << " "; } } cout << endl; } return 0; } ``` #### 🧠 代码解释: - **双重循环**:外层 `i` 控制行(1~4),内层 `j` 控制列(1~4)。 - **边界判断**:`i == 1 || i == 4 || j == 1 || j == 4` 表示当前处于第一行、最后一行、第一列或最后一列,此时输出字符 `ch`,否则输出空格。 - 每行结束后输出换行符。 --- ### 🐍 Python 实现 ```python ch = input().strip() # 读入字符并去除可能的空白 for i in range(4): for j in range(4): if i == 0 or i == 3 or j == 0 or j == 3: print(ch, end='') # 边界输出字符 else: print(' ', end='') # 内部输出空格 print() # 换行 ``` #### 💡 逻辑要点: - `range(4)` 生成 0~3,对应 4x4 网格。 - 边界条件:`i == 0`(第一行)、`i == 3`(最后一行)、`j == 0`(第一列)、`j == 3`(最后一列)。 - 内部位置(i=1,2 且 j=1,2)输出空格。 --- ### 📊 两种语言对比 | 特性 | C++ | Python | |------|-----|--------| | 输入处理 | 直接 `cin >> ch` | 需 `.strip()` 去除换行 | | 循环习惯 | 1~4 计数 | 0~3 起始 | | 输出控制 | 手动循环 `cout` | 使用 `end=''` 避免换行 | | 代码行数 | 较多(需包含头文件) | 简洁 | --- ### ⚠️ 常见陷阱 1. **Python 输入换行**:若使用 `input()` 不 `.strip()`,可能把换行符也当作字符,导致输出异常。 2. **C++ 的空格输出**:确保条件判断正确,否则内部空格会遗漏。 3. **边界判断优先级**:`||` 运算满足任一条件即输出字符,无需担心内部空格被覆盖。 --- ### 🛠️ 扩展建议 - **改变边长**:将 `4` 替换为变量 `n`,即可输出任意大小的空心正方形。 - **使用单循环**:可利用字符串乘法优化(Python 中 `ch + ' '*(n-2) + ch`),但双循环更直观易读。 --- ### 📚 学习资源 - C++ 官方参考:[cppreference.com](https://en.cppreference.com/w/) - Python 教程:[Python 官方文档](https://docs.python.org/3/tutorial/) --- ######[AI写代码神器 | 816点数解答 | 2026-08-16 17:41:44]
- C++实现读取数字并输出最小值的代码及解释(字节豆包 | 113点数解答 | 2026-03-20 19:32:56)104
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)623
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)561
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)348
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)571
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)561
- C语言:按特定格式输入并格式化输出整数、实数和字符(字节豆包 | 103点数解答 | 2024-10-24 11:12:53)507
- Python 实现按指定字符位置逆序字符串,处理多种边界情况!(字节豆包 | 197点数解答 | 2024-11-22 16:55:09)403
- C++实现n×n图案输出:中间行'#'其余'*',开发需注意三点!(字节豆包 | 265点数解答 | 2026-01-16 19:06:25)134
- Python破解NOIP2015基础扫雷游戏:计算非地雷格周围地雷数(字节豆包 | 545点数解答 | 2026-02-02 17:34:02)139
- C++实现输出指定奇数阶中间行带#的矩形图案(字节豆包 | 267点数解答 | 2026-02-14 19:34:03)104
- C++实现输出指定奇数阶中间为#其余为*的方阵(字节豆包 | 385点数解答 | 2026-02-25 16:20:13)109