计算数组中每行元素的最大值不用函数,就用数组
时间: 2024-12-17 09:40:53 浏览: 6
要计算数组中每行元素的最大值而不使用内置的函数,你可以遍历数组并逐行比较元素来找到最大值。以下是一个简单的示例,假设我们有一个二维整数数组 `arr` 和其行数 `rows`:
```c
#include <stdio.h>
// 假设 arr 是一个动态分配的二维数组
int *findMaxInEachRow(int **arr, int rows) {
// 对于每一行
for (int i = 0; i < rows; i++) {
// 初始化当前行的最大值为数组的第一个元素
int max_in_row = arr[i][0];
// 遍历行中的每个元素
for (int j = 1; j < sizeof(arr[0]) / sizeof(arr[0][0]); j++) {
if (arr[i][j] > max_in_row) {
// 如果找到更大的元素,更新最大值
max_in_row = arr[i][j];
}
}
// 将当前行的最大值存入结果数组中(这里假设 result 数组已经预先定义了大小)
*(result + i) = max_in_row;
}
return result; // 返回最大值数组,注意这里的指针操作
}
int main() {
// 创建一个二维数组示例
int rows = 3;
int cols = 5;
int **arr = malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
arr[i] = malloc(cols * sizeof(int));
// ...填充数组...
}
// 找到每行的最大值并打印(这里只示例,没有实际输出)
int *result = findMaxInEachRow(arr, rows);
for (int i = 0; i < rows; i++) {
printf("最大值: %d\n", result[i]);
}
// 释放内存
for (int i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```
在这个例子中,我们首先创建了一个辅助函数 `findMaxInEachRow`,它接受一个指向二维数组的指针和行数。然后,我们在两个嵌套循环中遍历数组,每次迭代找到一行中的最大值,并将其存储在一个临时的结果数组 `result` 中。
记住,这个代码假设了结果数组已经足够大来存储所有行的最大值。如果你没有预先知道数组的确切大小,可能需要根据行数动态分配结果数组。
阅读全文