用c语言设计一个函数,求二维数中的最大值。(不定长数组)
时间: 2024-12-30 17:36:58 浏览: 13
在C语言中,你可以使用一个动态数组来表示二维数组,并通过嵌套循环来找到其中的最大值。这里是一个简单的函数设计示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 函数声明,返回值类型是整型,用于存储最大值
int findMax(int** arr, int rows, int cols);
// 动态分配二维数组的空间
int** createArray(int rows, int cols)
{
int** array = (int**)malloc(rows * sizeof(int*));
for (int i = 0; i < rows; ++i)
{
array[i] = (int*)malloc(cols * sizeof(int));
}
return array;
}
// 函数实现,遍历二维数组寻找最大值
int findMax(int** arr, int rows, int cols)
{
if (rows == 0 || cols == 0) // 检查数组是否为空
{
printf("Error: Array is empty.\n");
return -1;
}
int maxVal = arr[0][0]; // 初始化最大值为第一个元素
for (int i = 0; i < rows; ++i)
{
for (int j = 0; j < cols; ++j)
{
if (arr[i][j] > maxVal) // 如果当前元素大于已知的最大值
{
maxVal = arr[i][j];
}
}
}
return maxVal;
}
// 使用示例
int main()
{
int rows, cols;
printf("Enter number of rows and columns: ");
scanf("%d %d", &rows, &cols);
int** array = createArray(rows, cols);
// ... (填充二维数组)
int result = findMax(array, rows, cols);
if (result != -1)
{
printf("The maximum value in the array is: %d\n", result);
}
// 清理动态内存
for (int i = 0; i < rows; ++i)
{
free(array[i]);
}
free(array);
return 0;
}
```
阅读全文