功能:求出N×M整型数组的最大元素及其所在的行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
的一个)。
例如:输入的数组为:
1 2 3
4 15 6
12 18 9
10 11 2
求出的最大数为18,行坐标为2,列坐标为1。
代码如下所示:
#include <stdio.h> #define N 4 #define M 3 int Row, Col;//将行列定义为全局变量,在传递参数时,就不需要传递这两个数 int fun(int arr[N][M]) { int i, j, max_arr; max_arr = arr[0][0];//先将二维数组中的最大值初始化为数组中的第一个数 //不要习惯性的初始化为0 for (i = 0; i < N; i++)//遍历二维数组找出最大值 { for (j = 0; j < M; j++) if (max_arr < arr[i][j]) { max_arr = arr[i][j];//得到数组中的最大值 Row = i;//得到最大数的行 Col = j;//得到最大数的列 } } return (max_arr);//将最大值返回给主函数 } int main() { int arr[N][M], i, j,d; printf("please to input numbers:\n"); for (i = 0; i < N; i++)//从键盘输入二维数组 { for (j = 0; j < M; j++) { scanf_s("%d", &arr[i][j]); } } printf("the result are:"); d = fun(arr);//调用函数 printf("max_arr=%d,max_arr_Row=%d,max_arr_Col=%d", d,Row,Col); }
输出如下所示: