输入一个n*n的矩阵,求出两条对角线元素值之和
时间: 2024-11-06 09:21:30 浏览: 133
在Python中,如果你有一个n*n的二维列表或numpy数组代表矩阵,你可以通过遍历对角线元素来求和。假设矩阵名为`matrix`,可以这样做:
```python
import numpy as np
def sum_diagonal_elements(matrix):
# 验证输入是否为方阵
if len(matrix) != len(matrix[0]):
raise ValueError("Input matrix must be square.")
# 计算主对角线和副对角线的元素之和
main_diag_sum = sum(matrix[i][i] for i in range(len(matrix)))
secondary_diag_sum = sum(matrix[i][len(matrix)-i-1] for i in range(len(matrix)))
return main_diag_sum, secondary_diag_sum
# 示例矩阵
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
main_diag, secondary_diag = sum_diagonal_elements(matrix)
print(f"主对角线元素和为: {main_diag}, 副对角线元素和为: {secondary_diag}")
相关问题
输入一个n*n的矩阵,求出两条对角线元素值之和。
在C++中,我们可以创建一个二维数组(矩阵)并计算对角线元素的和。对于给定的`n * n`矩阵,对角线有两条,一条是从左上到右下的主对角线,另一条是从左下到右上的次对角线。
以下是一个简单的示例代码,使用嵌套循环遍历矩阵:
```cpp
#include <iostream>
int main() {
int n, sum_main = 0, sum_secondary = 0; // 主对角线和次对角线的和
std::cout << "Enter the size of the matrix (n x n): ";
std::cin >> n;
// 创建一个n x n的动态数组(如果没有固定大小,可使用vector或std::array)
int matrix[n][n];
std::cout << "Enter elements for the matrix:\n";
for(int i = 0; i < n; ++i) {
for(int j = 0; j < n; ++j) {
std::cin >> matrix[i][j];
// 对于主对角线,索引i == j;对于次对角线,i + j == n - 1(因为矩阵下标从0开始)
if(i == j) {
sum_main += matrix[i][j]; // 主对角线
} else if(i + j == n - 1) {
sum_secondary += matrix[i][j]; // 次对角线
}
}
}
std::cout << "Sum of main diagonal elements: " << sum_main << "\n";
std::cout << "Sum of secondary diagonal elements: " << sum_secondary << "\n";
return 0;
}
```
在这个程序中,用户首先输入矩阵的尺寸,然后逐个输入矩阵元素。计算两个对角线的总和后,分别输出它们。
用c++输入一个n*n的矩阵,求出两条对角线元素值之和
在C++中,可以创建一个二维数组(矩阵),然后分别计算主对角线(从左上到右下)和副对角线(从左下到右上)的元素之和。下面是一个简单的例子:
```cpp
#include <iostream>
using namespace std;
int sumDiagonalElements(int matrix[n][n]) {
int sumMain = 0, sumSub = 0; // 主对角线和副对角线的初始和分别为0
for (int i = 0; i < n; i++) { // 遍历矩阵
sumMain += matrix[i][i]; // 主对角线元素累加
if (i != n - 1 - i]; // 副对角线元素累加
}
return sumMain + sumSub; // 返回两个对角线元素之和
}
int main() {
int n;
cout << "Enter the size of the matrix (n x n): ";
cin >> n;
int matrix[n][n];
cout << "Enter elements of the matrix:\n";
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> matrix[i][j];
int totalSum = sumDiagonalElements(matrix);
cout << "Sum of diagonal elements: " << totalSum << endl;
return 0;
}
```
这个程序首先获取用户输入的矩阵大小和元素,然后调用`sumDiagonalElements`函数计算并返回两个对角线元素之和。
阅读全文