酷代码 AI
菜单
服务商

C++ 竖条纹矩阵生成实现及编程建议

好的,这个任务很简单,就是根据给定的行数 `n` 和列数 `m`,生成一个 **竖条纹** 的矩阵,图案为 `*` 和 `#` 交替出现,并且每行的图案都一样。 --- ## 🧩 问题理解 “竖条纹小行星矩阵” 是指矩阵中每一行的字符排列是固定的,并且 **列方向上是交替的**。 从输出样例可以看出: - 第1列是 `*` - 第2列是 `#` - 第3列是 `*` - 第4列是 `#` - 第5列是 `*` - 依此类推…… 对于任意 `n` 行 `m` 列的矩阵,列索引(从1开始)为奇数时输出 `*`,为偶数时输出 `#`。 --- ## ✅ C++ 实现方案 ```cpp #include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; // 遍历每一行 for (int i = 0; i < n; ++i) { // 遍历每一列 for (int j = 0; j < m; ++j) { // 列索引 j 从0开始,判断是否偶数(即原第1,3,5...列) if (j % 2 == 0) { cout << '*'; } else { cout << '#'; } } // 每行结束后换行 cout << endl; } return 0; } ``` --- ## 🧪 运行示例 **输入:** ``` 5 5 ``` **输出:** ``` *#*#* *#*#* *#*#* *#*#* *#*#* ``` --- ## 💡 关键点解释 - **`j % 2 == 0`**:因为 C++ 数组索引从0开始,`j=0` 对应第一列(奇数),所以 `j % 2 == 0` 时输出 `*`;否则输出 `#`。 - 每输出一行后,要输出 `endl` 或 `"\n"` 换行。 - 时间复杂度为 **O(n × m)**,完全满足题目 1000MS 和 100MB 的限制。 --- ## 🧰 常见陷阱规避 1. **不要混淆行与列**:竖条纹的规律只和 **列索引** 有关,和行索引无关。 2. **不要忘记换行**:每一行输出后必须换行,否则输出会连成一行。 3. **输入读取**:使用 `cin >> n >> m` 即可,不需要额外处理多余空格或换行。 --- ## 📘 进阶建议 - 如果你想把图案变得更灵活(比如自定义两种字符),可以改为定义两个字符变量。 - 若想输出 **横条纹**,只需把判断条件由 `j % 2` 改为 `i % 2`。 - 若列数很大,可以考虑用 `string` 预先构造一行再重复输出,提高效率(不过此题 n,m 较小,没必要)。 --- ######[AI写代码神器 | 710点数解答 | 2026-05-30 21:56:35]

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