编写一个对角矩阵对角线元素之和
时间: 2025-01-01 19:40:50 浏览: 9
在编程中,特别是Python中,编写一个函数来计算对角矩阵的对角线元素之和相对直接。假设我们有一个二维数组(列表嵌套列表)表示矩阵,其中每个内部列表代表一行,我们可以创建一个函数来遍历对角线并求和:
```python
def sum_diagonal(matrix):
# 确保输入的是方阵
assert len(matrix) == len(matrix[0]), "矩阵不是正方形"
# 初始化对角线和为0
diagonal_sum = 0
# 对主对角线(从左上到右下)和副对角线(从左下到右上)求和
for i in range(len(matrix)):
diagonal_sum += matrix[i][i]
if i < len(matrix) - 1: # 如果还有剩余行
diagonal_sum += matrix[i][-(i+1)]
return diagonal_sum
# 示例
matrix = [[1, 2], [3, 4]]
print(sum_diagonal(matrix)) # 输出结果应该是5 (1 + 4)
```
这个函数首先检查输入是否是方阵,然后迭代矩阵的行和列,将对应位置的对角线元素加起来。
相关问题
编写一个对角矩阵对角线元素之和c语言
在C语言中,编写一个函数来计算对角矩阵的对角线元素之和,可以按照以下步骤进行:
首先,定义一个函数,例如`sum_diagonal(int matrix[n][n], int size)`,其中`matrix`是一个二维数组表示矩阵,`size`是矩阵的行数(也是列数),因为对于正方形矩阵来说,行数和列数相等。
```c
#include <stdio.h>
int sum_diagonal(int matrix[][n], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
// 对左上到右下的对角线元素求和
if (i < size - 1 && i >= 0)
sum += matrix[i][i];
// 对右上到左下的对角线元素求和
else if (i > 0)
sum += matrix[i][size - 1 - i];
}
return sum;
}
// 示例用法
int main() {
int n = 4; // 矩阵大小
int matrix[n][n] = { {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16} };
int result = sum_diagonal(matrix, n);
printf("对角线元素之和为: %d\n", result);
return 0;
}
```
在这个例子中,我们遍历两个对角线(从左上到右下和从右上到左下),并将每个对角线上对应位置的元素累加到`sum`变量中。最后返回这个总和。
要求编写一个3x3矩阵对角线元素之和的C++程序。
以下是一个计算3x3矩阵对角线元素之和的C程序:
```c
#include <stdio.h>
int main() {
int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int diagonal_sum = 0;
for (int i = 0; i < 3; i++) {
diagonal_sum += matrix[i][i]; // 计算左上到右下对角线元素之和
diagonal_sum += matrix[i][2-i]; // 计算右上到左下对角线元素之和
}
printf("对角线元素之和为:%d\n", diagonal_sum);
return 0;
}
```
程序中,我们首先定义了一个3x3的矩阵,然后利用一个for循环遍历矩阵的行和列,计算左上到右下对角线元素之和和右上到左下对角线元素之和,并将它们相加。最后,我们输出计算得到的对角线元素之和。
阅读全文