c++求一个N*N矩阵对角线元素之和。
时间: 2024-12-24 09:28:43 浏览: 1
西南交通大学万维c++答案
在C++中,求一个N*N矩阵对角线元素之和可以通过两层循环来遍历矩阵,每次比较当前元素的位置是否在对角线上(即行索引等于列索引,或者行索引加列索引等于矩阵的大小减1)。以下是详细的步骤:
```cpp
#include <iostream>
using namespace std;
int sumDiagonalElements(int N, int matrix[N][N]) {
int sum = 0;
for (int i = 0; i < N; i++) {
int j = i; // 对于对角线,列索引与行索引相等
// 或者 j = N - 1 - i; // 对于右上方对角线,从最后一行开始向左上方移动
while (j >= 0 && j < N) {
sum += matrix[i][j]; // 将对角线元素累加
j++;
}
}
return sum;
}
int main() {
int size;
cout << "Enter the size of the square matrix: ";
cin >> size;
int matrix[size][size];
cout << "Enter the elements of the matrix: \n";
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
cin >> matrix[i][j];
}
}
int diagonalSum = sumDiagonalElements(size, matrix);
cout << "Sum of diagonal elements: " << diagonalSum << endl;
return 0;
}
```
在这个程序里,`sumDiagonalElements()`函数接收矩阵的大小和二维数组作为参数,通过双指针法遍历对角线并计算和。注意,这个例子假设你要计算的是主对角线和从上到下的右上方对角线,如果你想只计算其中一个方向,可以删除另一个循环。
阅读全文