输入一个n*n的矩阵求除开对角线上元素外的所有元素之和
时间: 2024-05-16 16:14:30 浏览: 113
可以使用两个嵌套循环遍历矩阵中的每一个元素,判断当前元素的行列坐标是否相等,如果不相等就将该元素的值累加到和变量中。代码如下:
```python
def sum_except_diagonal(matrix):
n = len(matrix)
total = 0
for i in range(n):
for j in range(n):
if i != j: # 排除对角线上的元素
total += matrix[i][j]
return total
```
其中,`matrix`为输入的矩阵,`n`为矩阵的边长,`total`为累加和变量。函数返回除对角线上元素外的所有元素之和。
相关问题
输入一个n*n的矩阵求除开对角线上元素外的所有元素之和c语言
以下是一个求除开对角线上元素外的所有元素之和的C语言程序:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入矩阵的大小n:");
scanf("%d", &n);
int a[n][n];
// 输入矩阵
printf("请输入矩阵的元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
// 计算除对角线外的元素之和
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i != j) {
sum += a[i][j];
}
}
}
printf("除对角线外的所有元素之和为:%d", sum);
return 0;
}
```
这个程序首先让用户输入矩阵的大小n,然后创建一个n*n的矩阵a,用两个嵌套的for循环分别输入矩阵的元素。接着再次使用两个嵌套的for循环遍历矩阵,如果当前元素不在对角线上,则将其加入到sum变量中。最后输出sum的值即可。
(1) 输入一个n*n的矩阵。 1) 试求除开对角线上元素之外的元素之和; 2) 求 每行中与相应对角线元素不同的元素之和;
以下是 Python 代码实现:
```python
n = int(input("请输入矩阵的维度:"))
matrix = []
for i in range(n):
row = list(map(int, input("请输入第{}行的{}个数:".format(i+1, n)).split()))
matrix.append(row)
# 1) 除开对角线上元素之外的元素之和
sum_except_diagonal = 0
for i in range(n):
for j in range(n):
if i != j:
sum_except_diagonal += matrix[i][j]
print("除开对角线上元素之外的元素之和为:", sum_except_diagonal)
# 2) 求每行中与相应对角线元素不同的元素之和
sum_different_diagonal = [0] * n
for i in range(n):
for j in range(n):
if i != j and matrix[i][j] != matrix[i][i]:
sum_different_diagonal[i] += matrix[i][j]
print("第{}行中与相应对角线元素不同的元素之和为:{}".format(i+1, sum_different_diagonal[i]))
```
示例输入和输出:
```
请输入矩阵的维度:3
请输入第1行的3个数:1 2 3
请输入第2行的3个数:4 5 6
请输入第3行的3个数:7 8 9
除开对角线上元素之外的元素之和为: 33
第1行中与相应对角线元素不同的元素之和为:5
第2行中与相应对角线元素不同的元素之和为:10
第3行中与相应对角线元素不同的元素之和为:8
```
阅读全文