编写一个函数,能够实现对一个N阶的二维数组进行如下计算:函数的形参为一个N阶二阶数组,返回两个值,依次为该数组的主对角线元素之和、副对角线元素之和并输出。
时间: 2024-04-30 08:23:15 浏览: 36
假设输入的二维数组为matrix,其大小为N*N,可以编写如下的函数来实现要求:
```python
def diagonal_sum(matrix):
n = len(matrix)
primary_sum = 0
secondary_sum = 0
for i in range(n):
primary_sum += matrix[i][i]
secondary_sum += matrix[i][n-i-1]
print("主对角线元素之和为:", primary_sum)
print("副对角线元素之和为:", secondary_sum)
return primary_sum, secondary_sum
```
在函数中,首先获取二维数组的大小N,然后用两个变量primary_sum和secondary_sum来分别记录主对角线元素之和和副对角线元素之和。接下来通过两层循环遍历二维数组,对于每个元素,如果它在主对角线上(即行数和列数相等),则将其累加到primary_sum中;如果它在副对角线上(即行数和列数之和为N-1),则将其累加到secondary_sum中。最后输出两个对角线元素之和并返回它们。
相关问题
编写一个函数,能够实现对一个N阶的二维数组进行如下计算:函数的形参为一个N阶二阶数组,返回两个值,依次为该数组的主对角线元素之和、副对角线元素之和。
以下是Python代码实现:
```python
def diagonal_sum(arr):
n = len(arr)
main_sum = 0
minor_sum = 0
for i in range(n):
main_sum += arr[i][i]
minor_sum += arr[i][n-1-i]
return main_sum, minor_sum
```
实现思路:
1. 首先获取二维数组的阶数N,即数组的行数和列数。
2. 然后定义两个变量main_sum和minor_sum,分别表示主对角线元素之和和副对角线元素之和,初始值都为0。
3. 对于主对角线上的元素,其行号和列号是相等的,所以遍历二维数组的第i行第i列元素时,将arr[i][i]加到main_sum中。
4. 对于副对角线上的元素,其行号和列号之和等于N-1,所以遍历二维数组的第i行第N-1-i列元素时,将arr[i][N-1-i]加到minor_sum中。
5. 最后返回main_sum和minor_sum即可。
写一个代码编,能够实现对一个N阶的二维数组进行如下计算:函数的形参为一个N阶二阶数组,返回两个值,依次为该数组的主对角线元素之和、副对角线元素之和并输出。
以下是Python代码实现:
```python
def diagonal_sum(arr):
n = len(arr)
main_sum = 0
sub_sum = 0
for i in range(n):
main_sum += arr[i][i]
sub_sum += arr[i][n-1-i]
print("主对角线元素之和:", main_sum)
print("副对角线元素之和:", sub_sum)
return main_sum, sub_sum
```
使用示例:
```python
arr = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
main_sum, sub_sum = diagonal_sum(arr)
```
输出结果:
```
主对角线元素之和: 15
副对角线元素之和: 15
```
阅读全文