C程序中怎么使用void函数把一个二维数组每一列算出最小值并把最小值对应的行数组成一个新的一维数组
时间: 2024-03-09 09:45:40 浏览: 56
可以按照以下步骤实现:
1. 定义一个void类型的函数,传入一个二维数组和一个一维数组的指针。
2. 在函数内部,使用双重循环遍历二维数组,分别找出每一列的最小值及其所在的行号,并将行号存入传入的一维数组中。
3. 函数执行完毕后,调用方即可使用传入的一维数组,获取每列最小值所在的行数组成的新一维数组。
以下是示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
void getMinRows(int arr[ROWS][COLS], int* minRows) {
int i, j;
for (j = 0; j < COLS; j++) {
int min = arr[0][j];
int minRow = 0;
for (i = 1; i < ROWS; i++) {
if (arr[i][j] < min) {
min = arr[i][j];
minRow = i;
}
}
minRows[j] = minRow;
}
}
int main() {
int arr[ROWS][COLS] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int minRows[COLS];
getMinRows(arr, minRows);
int j;
for (j = 0; j < COLS; j++) {
printf("%d ", minRows[j]);
}
printf("\n");
return 0;
}
```
输出结果为:`0 0 0 0`,表示每列最小值所在的行号分别为 0。
阅读全文