C++实现小行星矩阵打印详解
好的,我们来一步步实现这个“小行星矩阵”的打印程序。 ## 🚀 问题分析 我们需要根据输入的行列数 `n`,打印一个 `n` 行 `n` 列的矩阵。矩阵的**每行**中: - **第一个**字符是金色小行星 `#` - **最后一个**字符是金色小行星 `#` - **中间的所有字符**是普通小行星 `*` 也就是说,对于每一行,我们只需要处理首尾两个特殊位置,其他位置全部填充 `*`。 --- ## 🛠️ 代码实现(C++) ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; // 读取矩阵的维度 // 外层循环控制行数 for (int i = 0; i < n; i++) { // 内层循环控制列数 for (int j = 0; j < n; j++) { // 判断是否为第一个或最后一个位置 if (j == 0 || j == n - 1) { cout << "#"; // 金色小行星 } else { cout << "*"; // 普通小行星 } } cout << endl; // 每行输出完毕后换行 } return 0; } ``` --- ## 📖 关键概念解释 | 元素 | 含义 | |------|------| | `if (j == 0 \|\| j == n - 1)` | 判断当前列是否为第一列(索引0)或最后一列(索引n-1) | | `cout << "#"` | 输出金色小行星 | | `cout << "*"` | 输出普通小行星 | | `cout << endl` | 每行结束后换行 | --- ## ✅ 输入输出验证 **输入样例1:** ``` 5 ``` **输出:** ``` #***# #***# #***# #***# #***# ``` **输入样例2:** ``` 3 ``` **输出:** ``` #*# #*# #*# ``` --- ## ⚡ 性能分析 - **时间复杂度**:O(n²),因为需要遍历整个 n×n 矩阵。 - **空间复杂度**:O(1),只有常数个变量。 完全满足题目要求的“1000MS/100MB”限制。 --- ## 💡 开发建议 1. **边界索引检查**:在使用 `j == 0 || j == n - 1` 时,注意 `n` 至少为 1,否则 `n-1` 会变成负数,导致逻辑错误。题目未明确说明 n 的最小值,建议在正式环境中增加 `n >= 1` 的校验。 2. **可读性优先**:即使可以一行输出所有字符,也建议保持嵌套循环结构,配合清晰的变量命名,方便后续维护。 3. **扩展思考**:如果未来需要支持不同的颜色表示(比如在终端中显示不同颜色),可以将 `#` 和 `*` 替换为带 ANSI 转义码的字符串。 4. **通用性**:这个模式可以推广到打印任何“边界特殊、内部一致”的方形矩阵,比如棋盘、窗口边框等。 --- ## 🧠 常见陷阱规避 - 陷阱:忘记控制换行,导致所有内容输出在一行。 - 解决:每行结束后使用 `cout << endl` 或 `cout << "\n"`。 - 陷阱:将索引从 1 开始计数,导致边界判断写为 `j == 1 || j == n`。 - 解决:始终从 0 开始索引,并使用 `j == 0 || j == n-1`。 - 陷阱:输入 n=1 时,首尾是同一个位置,应该只输出一个 `#`。 - 当前代码能正确处理:`0 == n-1` 成立,输出一次 `#`,内层循环结束。 --- ######[AI写代码神器 | 882点数解答 | 2026-05-30 22:02:57]
- C++ 实现:轻松计算两个矩阵的乘法并输出结果(字节豆包 | 381点数解答 | 2025-12-03 19:20:23)162
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)401
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)269
- Python 实现:打印 -n 到 n 范围内所有整数的代码及详解(字节豆包 | 232点数解答 | 2025-12-07 12:30:06)108
- Python代码:轻松打印 0 到输入整数之间的所有整数(字节豆包 | 126点数解答 | 2025-12-12 18:21:54)71
- C++实现:输入整数打印 0 到该整数间所有整数及代码详解(字节豆包 | 228点数解答 | 2025-12-12 18:22:24)79
- Python实现:打印0到输入整数间所有整数的代码解析(字节豆包 | 264点数解答 | 2025-12-12 19:37:01)69
- Python 实现:打印 -n 到 n 范围内所有整数的代码及详解(字节豆包 | 214点数解答 | 2025-12-12 19:40:30)71
- Python实现:打印 0 到 n 之间所有整数的高效方法(讯飞星火 | 569点数解答 | 2025-12-17 12:23:47)84
- Python实现:打印从 -n 到 n 范围内所有整数的代码详解(讯飞星火 | 660点数解答 | 2025-12-17 17:30:53)56
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)365
- Python 实现:根据规则判定 2^n×2^n 方阵中作弊者的赦免命运(字节豆包 | 247点数解答 | 2024-11-03 10:30:46)215