酷代码 AI
菜单
服务商

横条纹小行星矩阵 C++ 实现及开发注意要点

好的!我们先来**理解题意**,再给出 **C++ 的代码实现**,并附带详细的解释。 --- ## 🧠 题目理解 所谓的**“横条纹小行星矩阵”**,本质上是一个 **行数为 n,列数为 m** 的字符矩阵,其中: - **奇数行**(第 1、3、5…行)全部由 `*` 组成; - **偶数行**(第 2、4、6…行)全部由 `#` 组成。 例如输入 `5 5`,输出为: ``` ***** ##### ***** ##### ***** ``` 这里第 1、3、5 行是 `*`,第 2、4 行是 `#`。 --- ## ✅ 解题思路 1. **读取输入**:读取两个整数 `n` 和 `m`。 2. **遍历行**(共 n 行): - 如果行号是 **奇数**(从 1 开始计数),输出 m 个 `*`; - 如果行号是 **偶数**(从 1 开始计数),输出 m 个 `#`。 3. **每行输出后换行**。 --- ## 💻 C++ 代码实现 ```cpp #include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; for (int i = 1; i <= n; ++i) { if (i % 2 == 1) { // 奇数行:输出 m 个 '*' for (int j = 0; j < m; ++j) { cout << '*'; } } else { // 偶数行:输出 m 个 '#' for (int j = 0; j < m; ++j) { cout << '#'; } } cout << endl; } return 0; } ``` --- ## 🧩 关键点解释 - **`i % 2 == 1`**:判断行号是否为奇数(从 1 开始计数)。 - **嵌套循环**: - **外层循环**控制行; - **内层循环**控制列,重复输出字符。 - **输出换行**:每行结束后使用 `cout << endl;` 来换行。 --- ## 📐 复杂度分析 | 指标 | 值 | |------------|---------------| | 时间复杂度 | O(n × m) | | 空间复杂度 | O(1) | 因为我们每个字符只输出一次,且没有使用额外的数组。 --- ## ⚠️ 常见陷阱与建议 - **注意行号从 1 开始**,而不是从 0 开始。如果从 0 开始,判断条件应改为 `i % 2 == 0` 为奇数行。 - **不要忘记换行**,否则输出会变成一行。 - 如果 `n` 或 `m` 很大(例如 10^5 级别),直接循环输出即可,效率足够高。 --- ## 📚 扩展练习建议 - 🔄 修改程序,让 **偶数行用 `*`**,奇数行用 `#` 输出。 - 🎨 尝试输出“竖条纹”矩阵(列交替 `*` 和 `#`)。 - 📦 将输出逻辑封装成函数,提高代码复用性。 --- ######[AI写代码神器 | 762点数解答 | 2026-05-30 21:59:59]

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