求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。 函数接口定义: int fun(int array[N][M]) ; 注意:函数只需靠return返回最大元素的值, 行、列坐标通过全局变量传递。 裁判测试程序样例: #include <stdio.h> #define N 4 #define M 3 #include <stdio.h> int Row,Col ; // 最大数的行列标,全局变量 int fun(int array[N][M]) ; main() { int a[N][M],i,j,max; for(i=0;i<N;i++) for(j=0;j<M;j++) scanf("%d",&a[i][j]); max=fun(a); printf("max=%d,row=%d,col=%d",max,Row,Col); //Row,Col代表最大值的下标 } /* 请在这里填写答案 */ 输入样例: 1 10 2 3 12 5 4 11 3 5 12 4 输出样例: max=12,row=1,col=1
时间: 2024-01-22 17:04:07 浏览: 126
以下是对应的C语言代码实现:
```c
#include <stdio.h>
#define N 4
#define M 3
int Row, Col; // 最大数的行列标,全局变量
int fun(int array[N][M])
{
int max = array[0][0];
Row = 0;
Col = 0;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
if (array[i][j] > max)
{
max = array[i][j];
Row = i;
Col = j;
}
}
}
return max;
}
int main()
{
int a[N][M], i, j, max;
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
scanf("%d", &a[i][j]);
max = fun(a);
printf("max=%d,row=%d,col=%d", max, Row, Col); //Row,Col代表最大值的下标
return 0;
}
```
输入样例:
1 10 2
3 12 5
4 11 3
5 12 4
输出样例:
max=12,row=1,col=1
在函数fun中,我们首先将数组的第一个元素设为最大值,然后遍历整个数组,如果有更大的元素,就更新最大值,并记录下该元素的行列坐标。最后返回最大值。
在主函数中,我们先将输入的数组作为参数传递给函数fun,然后输出最大值以及其所在的行列坐标。
阅读全文