酷代码 AI
菜单
服务商

C++实现武器防御矩阵的副对角线填充

以下是完成该任务的 C++ 代码: ```cpp #include <iostream> using namespace std; int a[6][6]; // 从下标 1 开始使用,最大为 5x5 矩阵,所以定义 6x6 数组 int main() { int n; cin >> n; // 将编号从 1 开始依次填充到副对角线 for (int i = 1; i <= n; i++) { a[i][n - i + 1] = i; } // 输出矩阵,从下标 1 开始 for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (j > 1) cout << " "; cout << a[i][j]; } cout << endl; } return 0; } ``` ### 代码解释: 1. **数组定义**:`int a[6][6];` 定义了一个 6x6 的二维数组,因为矩阵最大为 5x5,同时为了从下标 1 开始使用,所以定义为 6x6。 2. **副对角线元素填充**: - 副对角线上元素的特点是 `行号 + 列号 = n + 1`。 - 通过 `for (int i = 1; i <= n; i++)` 循环,`a[i][n - i + 1] = i;` 可以将编号从 1 到 n 的武器依次填充到副对角线上。 3. **矩阵输出**: - 使用两层嵌套的 `for` 循环遍历矩阵,外层循环控制行,内层循环控制列。 - `if (j > 1) cout << " ";` 用于在元素之间添加空格,`cout << a[i][j];` 输出矩阵元素。 - 每行输出结束后,使用 `cout << endl;` 换行。 ### 开发建议: - **边界检查**:在实际应用中,可以添加对输入 `n` 的边界检查,确保 `n` 在 1 到 5 之间。 - **代码复用**:如果需要多次使用该功能,可以将矩阵填充和输出的代码封装成函数,提高代码的复用性。 - **错误处理**:可以添加对输入异常的处理,例如输入不是整数的情况。 ######[AI写代码神器 | 579点数解答 | 2026-04-10 20:16:00]

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