利用函数求数组各列之和
时间: 2024-02-07 19:03:12 浏览: 16
可以编写一个函数,传入一个二维数组,返回一个一维数组,其中每个元素表示对应列的和。具体实现可以参考以下代码:
```python
def col_sum(arr):
n = len(arr) # 数组行数
m = len(arr[0]) # 数组列数
res = [0] * m # 初始化结果数组
for j in range(m):
for i in range(n):
res[j] += arr[i][j] # 累加每列的元素
return res
```
调用该函数可以如下:
```python
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
res = col_sum(arr)
print(res) # 输出 [12, 15, 18]
```
以上代码可以求出一个二维数组各列之和,并返回一个一维数组。
相关问题
C语言,利用函数求数组各列之和
可以编写一个函数,传入一个二维数组和一个整型指针数组,返回一个整型数组,其中每个元素表示对应列的和,并将结果存储在指针数组中。具体实现可以参考以下代码:
```c
void col_sum(int arr[][N], int *sum, int n, int m) {
int i, j;
for (j = 0; j < m; j++) {
sum[j] = 0;
for (i = 0; i < n; i++) {
sum[j] += arr[i][j];
}
}
}
```
其中,`N`是数组的列数,`n`是数组的行数,`m`是数组的列数。调用该函数可以如下:
```c
#define N 3
int main() {
int arr[][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int sum[N];
col_sum(arr, sum, 3, N);
int i;
for (i = 0; i < N; i++) {
printf("%d ", sum[i]);
}
printf("\n");
return 0;
}
```
以上代码可以求出一个二维数组各列之和,并输出结果。
利用指向电话入组指针求二维数组各行元素之和
可以使用两层循环,第一层循环遍历数组每一行,第二层循环遍历该行每个元素,累加求和即可。具体代码实现如下:
```c
// 计算所有行的元素和
void calcSum(int** arr, int row, int col, int* result) {
// 遍历每一行
for (int i = 0; i < row; i++) {
int sum = 0;
// 遍历该行每个元素
for (int j = 0; j < col; j++) {
sum += arr[i][j];
}
result[i] = sum;
}
}
```
其中arr是一个指向二维数组的指针,row表示数组的行数,col表示数组的列数,result是一个记录每行元素之和的一维数组。调用该函数后,result数组中就会存储各行元素之和。