酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

字符空心正方形构造: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]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]