所属年份: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++) ……