C++ 代码:巧妙计算 n×n 矩阵行、列、对角线平行直线元素和最大值
```cpp #include <iostream> #include <vector> // 使用标准命名空间 using namespace std; // 主函数,程序的入口点 int main() { // 定义一个整数变量 n,用于存储矩阵的大小 int n; // 从标准输入读取一个整数赋值给 n cin >> n; // 定义一个二维向量 A,用于存储 n x n 的矩阵 vector<vector<int>> A(n, vector<int>(n)); // 嵌套循环,用于读取矩阵的每一个元素 for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { // 从标准输入读取矩阵元素并存储到 A[i][j] cin >> A[i][j]; } } // 定义一个整数变量 maxSum,用于存储最大的和,初始化为一个极小值 int maxSum = -1e9; // 计算每行的和 for (int i = 0; i < n; ++i) { // 定义一个整数变量 rowSum,用于存储当前行的和 int rowSum = 0; for (int j = 0; j < n; ++j) { // 将当前行的元素累加到 rowSum 中 rowSum += A[i][j]; } // 更新 maxSum 为 maxSum 和 rowSum 中的较大值 maxSum = max(maxSum, rowSum); } // 计算每列的和 for (int j = 0; j < n; ++j) { // 定义一个整数变量 colSum,用于存储当前列的和 int colSum = 0; for (int i = 0; i < n; ++i) { // 将当前列的元素累加到 colSum 中 colSum += A[i][j]; } // 更新 maxSum 为 maxSum 和 colSum 中的较大值 maxSum = max(maxSum, colSum); } // 计算正对角线平行直线的和 for (int startCol = 0; startCol < n; ++startCol) { // 定义一个整数变量 sum,用于存储当前正对角线平行直线的和 int sum = 0; for (int i = 0, j = startCol; i < n && j < n; ++i, ++j) { // 将当前正对角线平行直线上的元素累加到 sum 中 sum += A[i][j]; } // 更新 maxSum 为 maxSum 和 sum 中的较大值 maxSum = max(maxSum, sum); } for (int startRow = 1; startRow < n; ++startRow) { // 定义一个整数变量 sum,用于存储当前正对角线平行直线的和 int sum = 0; for (int i = startRow, j = 0; i < n && j < n; ++i, ++j) { // 将当前正对角线平行直线上的元素累加到 sum 中 sum += A[i][j]; } // 更新 maxSum 为 maxSum 和 sum 中的较大值 maxSum = max(maxSum, sum); } // 计算反对角线平行直线的和 for (int startCol = 0; startCol < n; ++startCol) { // 定义一个整数变量 sum,用于存储当前反对角线平行直线的和 int sum = 0; for (int i = 0, j = startCol; i < n && j >= 0; ++i, --j) { // 将当前反对角线平行直线上的元素累加到 sum 中 sum += A[i][j]; } // 更新 maxSum 为 maxSum 和 sum 中的较大值 maxSum = max(maxSum, sum); } for (int startRow = 1; startRow < n; ++startRow) { // 定义一个整数变量 sum,用于存储当前反对角线平行直线的和 int sum = 0; for (int i = startRow, j = n - 1; i < n && j >= 0; ++i, --j) { // 将当前反对角线平行直线上的元素累加到 sum 中 sum += A[i][j]; } // 更新 maxSum 为 maxSum 和 sum 中的较大值 maxSum = max(maxSum, sum); } // 输出最大的和到标准输出 cout << maxSum << endl; // 程序正常结束,返回 0 return 0; } ``` 这段代码的功能是读取一个 `n x n` 的矩阵,然后计算矩阵中每行、每列、正对角线平行直线以及反对角线平行直线的元素和,最后输出这些和中的最大值。 ######[AI问答 | 1151点数解答 | 2025-11-26 20:07:49]
- C++ 实现:轻松计算两个矩阵的乘法并输出结果(字节豆包 | 381点数解答 | 2025-12-03 19:20:23)109
- 地下水及地基土腐蚀性分析:从代码优化到逻辑完善的全面攻略(DeepSeek | 498点数解答 | 2025-06-08 21:49:49)228
- 礼盒多级排序:总价→最贵→最便宜→编号的 Python 实现与详解(阿里通义 | 1000点数解答 | 2026-03-16 12:13:21)9
- Photoshop 错误 8800 大揭秘:原因分析与实用解决方案(DeepSeek | 349点数解答 | 2025-02-28 11:19:16)569
- SketchLayer报错24:applyDesaturate非函数,第16行问题排查全攻略 (字节豆包 | 82点数解答 | 2025-03-02 22:13:18)125
- PS运行脚本报错“错误8:语法错误”?常见原因与解决办法大揭秘!(字节豆包 | 449点数解答 | 2025-07-01 18:28:50)162
- 网格数字求和难题:代码详解如何找出最大数字和(字节豆包 | 973点数解答 | 2025-11-26 20:07:06)57
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)67
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)24
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)431
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)351
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)357