C语言求二维数组每行最大值
时间: 2025-02-03 15:14:27 浏览: 44
在C语言中,计算二维数组每行的最大值通常需要遍历每一行并逐个比较元素。以下是一个简单的示例函数,它接受一个二维整数数组和其行数作为输入,并返回一个新的一维数组,其中包含了原始数组每行的最大值:
```c
#include <stdio.h>
// 函数声明,用于返回每行最大值
int* getRowMaxes(int arr[][MAX_COLS], int rows);
// 主函数示例
void main() {
int arr[MAX_ROWS][MAX_COLS] = { /* 初始化二维数组 */ };
int rows = sizeof(arr) / sizeof(arr[0]);
int* rowMaxes = getRowMaxes(arr, rows);
// 输出结果
for (int i = 0; i < rows; i++) {
printf("Row %d max: %d\n", i+1, rowMaxes[i]);
}
// 释放内存
free(rowMaxes);
}
// 求二维数组每行最大值的函数实现
int* getRowMaxes(int arr[][MAX_COLS], int rows) {
int* result = (int*)malloc(rows * sizeof(int)); // 分配内存存储结果
if (!result) {
return NULL;
}
for (int i = 0; i < rows; i++) {
int currMax = arr[i][0]; // 假设第一列是该行的最大值
for (int j = 1; j < MAX_COLS; j++) {
if (arr[i][j] > currMax) {
currMax = arr[i][j];
}
}
result[i] = currMax; // 将当前行的最大值存入结果数组
}
return result;
}
```
在这个例子中,`MAX_ROWS`和`MAX_COLS`分别代表最大的行数和列数。函数`getRowMaxes`首先分配空间存放结果,然后遍历每一行,更新最大值。最后返回这个包含每行最大值的一维数组。
阅读全文
相关推荐



















