P001 二维数组中最大元素 ★

03-程序设计题 飞快学 1521浏览

所属年份:2010.9;2011.3;2012.3;
请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。

#include <stdio.h>
#define M 4
int fun (int a[][M])
{

}

int main( )
{
    int arr[2][M]= {5,8,3,45,76,-4,12,82} ;
    printf("max =%d\n", fun(arr)) ;
    return 0;
}

【参考答案】

int fun (int a[][M])
{
int i,j,max=a[0][0];
  for(i=0;i<2;i++)
     for(j=0;j<M;j++)
        if(max<a[i][j]) 
           max=a[i][j];
  return max;
}

【考点分析】
本题考查:求数组的最大值,需要运用循环语句,因为数组是二维数值,所以应使用二层加for循环嵌套。使用for循环语句时需要注意循环变量的取值范围。

【解题思路】
此类求最大值或最小值的问题,我们可以采用逐个比较的方式,要求对数组中所有元素遍历一遍,并且从中找出数组最大值或最小值。首先定义变量max存放数组中的第一个元素的值,然后利用for循环逐个找出数组中的元素,并与max比较,如果元素值大于max,则将该值赋于max,循环结后max的值即为数组最大值,最后将该值返回。

【解题宝典】
该类题目考查较多,要掌握逐行比较的方法。对于m*n二维数组,如采用逐行查找方法,代码实现为:

for (i=0;i < m;i++)
for (j=0;j < n;j++)
……