酷代码 AI
菜单
服务商

#include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<vector<int>> A(n, vector<int>(n)); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cin >> A[i][j]; } } int maxSum = -1e9; // 计算每行的和 for (int i = 0; i < n; ++i) { int rowSum = 0; for (int j = 0; j < n; ++j) { rowSum += A[i][j]; } maxSum = max(maxSum, rowSum); } // 计算每列的和 for

```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` 的矩阵,然后计算矩阵中每行、每列、正对角线平行直线以及反对角线平行直线的元素和,最后输出这些和中的最大值。 [2025-11-26 20:07:49 | AI问答 | 1151点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多