用C++写输入一个n*n的方阵,求出该方阵主对角线元素最大值,除自己以外所在行列的其他元素之和。 若主对角线同时存在多个最大值选择最大值下标i+j较小的。
时间: 2023-06-18 13:02:49 浏览: 117
C语言程序设计-求n阶方阵主、副对角线上的元素之积;.c
5星 · 资源好评率100%
以下是使用 C++ 实现的代码:
```c++
#include <iostream>
#include <climits>
using namespace std;
int main() {
int n, maxVal = INT_MIN, maxIndex = INT_MAX;
cin >> n;
int matrix[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
if (i == j && matrix[i][j] > maxVal) {
maxVal = matrix[i][j];
maxIndex = i + j;
}
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == maxIndex || j == maxIndex) {
continue;
}
sum += matrix[i][j];
}
}
cout << maxVal << " " << sum << endl;
return 0;
}
```
这个程序首先读取一个整数 `n`,表示输入的方阵的维度为 `n * n`。然后,程序使用一个二维数组 `matrix` 来存储输入的方阵。接着,程序遍历主对角线上的元素,找出最大值并记录下标。最后,程序遍历整个方阵,计算除最大值所在行和列以外的所有元素的和。最终,程序输出最大值和除最大值所在行和列以外的所有元素的和。
阅读全文