C++ 竖条纹小行星矩阵生成程序实现
好的,这是根据您的要求,用 C++ 编写的 “竖条纹小行星矩阵” 生成程序。 ```cpp #include <iostream> #include <vector> #include <string> /** * @brief 生成并打印 “竖条纹小行星矩阵”。 * * 该矩阵的特点是:每一列的所有元素都是相同的字符。 * 从第一列开始,交替使用 '*' 和 ' ' (空格) 来填充。 * 这样就会形成垂直方向的条纹,看起来像小行星带。 * * @param n 矩阵的行数 * @param m 矩阵的列数 */ void printStripedAsteroidMatrix(int n, int m) { // 🚀 使用一个二维字符向量来表示矩阵 std::vector<std::vector<char>> matrix(n, std::vector<char>(m)); // 🌟 填充矩阵:根据列索引决定字符 for (int row = 0; row < n; ++row) { for (int col = 0; col < m; ++col) { // 列索引为偶数时,填充 '*' // 列索引为奇数时,填充 ' ' (空格) if (col % 2 == 0) { matrix[row][col] = '*'; } else { matrix[row][col] = ' '; } } } // 📄 打印最终的矩阵 for (int row = 0; row < n; ++row) { for (int col = 0; col < m; ++col) { std::cout << matrix[row][col]; // 在字符之间添加一个空格,使矩阵更加清晰易读 if (col < m - 1) { std::cout << ' '; } } // 每打印完一行,换行 std::cout << std::endl; } } int main() { int n, m; // ✨ 读取用户输入的行数和列数 std::cout << "请输入矩阵的行数 n 和列数 m: "; std::cin >> n >> m; // 检查输入是否有效 if (n <= 0 || m <= 0) { std::cerr << "错误:行数和列数必须为正整数。" << std::endl; return 1; // 非零返回值表示程序出错 } // ⚡ 调用函数生成并打印矩阵 printStripedAsteroidMatrix(n, m); return 0; // 程序成功结束 } ``` **核心逻辑说明:** 1. **核心算法**:关键在于 `if (col % 2 == 0)` 这一行。`col` 从 0 开始计数。 * 当 `col` 是偶数(0, 2, 4, ...)时,将该列的所有行赋值为 `'*'`。 * 当 `col` 是奇数(1, 3, 5, ...)时,将该列的所有行赋值为 `' '`。 * 这就创建了从顶部贯穿到底部的竖条纹。 2. **代码结构**: * 使用了一个二维 `vector` 来灵活存储矩阵。 * 分为填充矩阵和打印矩阵两个清晰的步骤。 * 包含了输入验证,确保程序健壮性。 3. **输出格式**: * 为了美观,每两个字符之间用空格隔开,这样星号和空格形成的条纹更容易用肉眼分辨。 **示例运行:** 假设输入 `n = 4`, `m = 5`。 输出: ``` * * * * * * * * * * * * ``` (这里为了在文本中显示,空格被压缩了,实际运行时会严格按照列的位置显示星号和空格,形成清晰的竖条纹。) ######[AI问答 | 849点数解答 | 2026-07-26 19:31:42]
- 代码填空挑战:完成正态分布、随机数生成及数据处理代码(阿里通义 | 506点数解答 | 2025-03-23 14:32:14)406
- 挑战!完成代码填空解锁数据处理奥秘(字节豆包 | 116点数解答 | 2025-03-26 22:22:15)416
- 挑战填空!完成这段 NumPy 代码实现数据生成与保存(DeepSeek | 178点数解答 | 2025-03-26 22:26:30)493
- C++ 实现:轻松计算两个矩阵的乘法并输出结果(字节豆包 | 381点数解答 | 2025-12-03 19:20:23)236
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)538
- 5条新春贺语,开启龙年吉祥团圆新篇章!(字节豆包 | 135点数解答 | 2025-01-15 14:43:34)392
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)456
- Python 实现:根据规则判定 2^n×2^n 方阵中作弊者的赦免命运(字节豆包 | 247点数解答 | 2024-11-03 10:30:46)257
- C语言实现:解决2ⁿ×2ⁿ方阵作弊者赦免问题(字节豆包 | 370点数解答 | 2024-11-03 10:31:31)271
- C语言递归破解2ⁿ×2ⁿ作弊者赦免难题,输出01命运矩阵!(百度文心 | 792点数解答 | 2024-11-03 10:36:04)340
- Python 实现:计算用户输入 n x n 矩阵边界元素之和(GPT | 319点数解答 | 2024-11-21 00:16:05)182
- DevC++ 实现:计算并输出 n×n 矩阵边界元素之和(GPT | 410点数解答 | 2024-11-21 00:19:17)180