问题:c编写一个函数,对3行5列的二维数组,求出每一行的最小值。
时间: 2024-12-16 10:17:01 浏览: 1
在C语言中,你可以通过遍历二维数组并逐行找到每个元素的最小值来实现这个功能。这里是一个简单的示例函数,它接受一个3行5列的整数数组作为输入,并返回一个新的数组,其中包含了原始数组每行的最小值:
```c
#include <stdio.h>
// 定义一个结构体来保存每行的最小值
typedef struct {
int min;
} RowMin;
// 函数声明
RowMin* findRowMins(int arr[3][5], int rows, int cols);
// 函数实现
RowMin* findRowMins(int arr[3][5], int rows, int cols) {
// 创建一个大小为3的RowMin数组来存放结果
RowMin *rowMins = (RowMin*) malloc(rows * sizeof(RowMin));
for (int i = 0; i < rows; i++) {
rowMins[i].min = arr[i][0]; // 先假设第一列是最小值
for (int j = 1; j < cols; j++) {
if (arr[i][j] < rowMins[i].min) {
rowMins[i].min = arr[i][j];
}
}
}
return rowMins;
}
// 示例:如何使用该函数
int main() {
int arr[3][5] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}};
int rows = 3, cols = 5;
RowMin *result = findRowMins(arr, rows, cols);
for (int i = 0; i < rows; i++) {
printf("Row %d's minimum value is: %d\n", i+1, result[i].min);
}
free(result); // 释放内存
return 0;
}
```
阅读全文