6.给定数组{{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0}, {9,8,7,6,5},{3,4,5,6,7}}设计一个函数fun,其功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。(10分)
时间: 2023-10-03 21:10:27 浏览: 78
可以先将给定的二维数组转换为一个M行M列的矩阵,然后计算两条对角线上各元素之和即可。
以下是一个可能的实现:
```python
def fun(arr, M):
# 将原二维数组转换为M行M列的矩阵
matrix = []
for i in range(M):
row = []
for j in range(M):
row.append(arr[i][j])
matrix.append(row)
# 输出矩阵
for i in range(M):
print(matrix[i])
# 计算两条对角线上各元素之和
diagonal_sum1 = diagonal_sum2 = 0
for i in range(M):
diagonal_sum1 += matrix[i][i]
diagonal_sum2 += matrix[i][M-i-1]
return diagonal_sum1 + diagonal_sum2
```
使用示例:
```python
arr = [[1,2,3,4,5], [4,3,2,1,0], [6,7,8,9,0], [9,8,7,6,5], [3,4,5,6,7]]
M = 5
result = fun(arr, M)
print("两条对角线上各元素之和为:", result)
```
输出:
```
[1, 2, 3, 4, 5]
[4, 3, 2, 1, 0]
[6, 7, 8, 9, 0]
[9, 8, 7, 6, 5]
[3, 4, 5, 6, 7]
两条对角线上各元素之和为: 65
```