题目: 请编一个函数void fun(int tt[M][N ], int pp[N]),tt指向 一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入 pp所指一维数组中
时间: 2024-01-07 22:03:40 浏览: 38
好的,根据您的要求,我来为您编写这个函数。
```c++
void fun(int tt[M][N], int pp[N]) {
for (int j = 0; j < N; j++) {
int minVal = tt[0][j]; // 初始化最小值为第一个元素
for (int i = 1; i < M; i++) {
if (tt[i][j] < minVal) {
minVal = tt[i][j]; // 更新最小值
}
}
pp[j] = minVal; // 将最小值放入 pp 数组中
}
}
```
该函数的作用是求出二维数组 `tt` 中每列中的最小元素,并依次存放到一维数组 `pp` 中。
函数的实现过程是,先遍历每一列,然后再遍历该列中的每个元素,找到最小值,并将其存入 `pp` 数组中对应的位置。
希望我的回答能够帮到您!如有疑问,欢迎继续提问。
相关问题
请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。
以下是函数 `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` 中的元素,即每列的最大值。
请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。
好的,以下是函数的代码实现:
```c++
void fun(int tt[M][N], int pp[N]) {
for (int j = 0; j < N; j++) {
int min = tt[0][j]; // 假设第一个元素是最小值
for (int i = 1; i < M; i++) {
if (tt[i][j] < min) {
min = tt[i][j]; // 更新最小值
}
}
pp[j] = min; // 将每列的最小值存入一维数组
}
}
```
其中,我们先使用两重循环遍历二维数组,对于每一列,都假设第一个元素是最小值,然后从第二个元素开始依次与当前最小值进行比较,如果有更小的元素,则更新最小值。最后,将每列的最小值存入一维数组pp中。