C语言存放输入的M×N个整数,然后求这M×N个数中的最大值。具体要求如下: 定义函数 input(),从后台获取数据,实现二维数组的输入; 定义函数 maxnum(),找出二维数组的最大值,并返回结果; 定义函数 output(),根据测试说明的预期输出格式输出二维数组; 完善函数 main(),创建二维动态数组,最后释放内存。 测试说明 平台会对你编写的代码进行测试。 测试输入: 3 4 54 21 36 58 4 78 46 2 35 47 69 28 输入说明: 第一行为二维数组的行数和列数; 第二行为二维数组的具体值。 预期输出: max=78 54 21 36 58 4 78 46 2 35 47 69 28
时间: 2023-06-06 10:07:23 浏览: 102
用C程序怎么求最大数
解答:
定义函数 input(),从后台获取数据,实现二维数组的输入:
```c
int **input(int m, int n) {
int **arr = (int **)malloc(m * sizeof(int *));
for (int i = 0; i < m; i++) {
arr[i] = (int *)malloc(n * sizeof(int));
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
return arr;
}
```
定义函数 maxnum(),找出二维数组的最大值,并返回结果:
```c
int maxnum(int **arr, int m, int n) {
int max = arr[0][0];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
}
}
}
return max;
}
```
定义函数 output(),根据测试说明的预期输出格式输出二维数组:
```c
void output(int **arr, int m, int n) {
printf("max=%d\n", maxnum(arr, m, n));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
```
完善函数 main(),创建二维动态数组,最后释放内存:
```c
int main() {
int m, n;
scanf("%d%d", &m, &n);
int **arr = input(m, n);
output(arr, m, n);
for (int i = 0; i < m; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```
阅读全文