请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。
时间: 2024-03-12 18:47:46 浏览: 106
C语言程序设计-请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二
以下是函数 `fun` 的实现:
```c
#include <stdio.h>
#define M 3
#define N 4
void fun(int tt[M][N], int pp[N]) {
for (int j = 0; j < N; j++) {
int max = tt[0][j];
for (int i = 1; i < M; i++) {
if (tt[i][j] > max) {
max = tt[i][j];
}
}
pp[j] = max;
}
}
int main() {
int tt[M][N] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int pp[N];
fun(tt, pp);
for (int i = 0; i < N; i++) {
printf("%d ", pp[i]);
}
printf("\n");
return 0;
}
```
在 `fun` 函数中,我们先遍历每一列,将第一个元素作为最大值,然后依次与后面的元素比较,如果发现有更大的元素则更新最大值。最后将每列的最大值存储到一维数组 `pp` 中。
在 `main` 函数中,我们先定义一个 `M` 行 `N` 列的二维数组 `tt`,并初始化。然后定义一个一维数组 `pp`,用于存储每列的最大值。调用 `fun` 函数,将二维数组 `tt` 和一维数组 `pp` 作为参数传入。最后输出一维数组 `pp` 中的元素,即每列的最大值。
阅读全文