问答题
1. 请编写函数fun(),其功能是:找出2M整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。
试题程序:
#define M 4
#include<stdio.h>
int fun(int a[][M])
{
}
void main()
{
int arr[2][M]={5,8,3,45,76,-4,12,2};
printf("max=%d\n",fun(arr));
}
【正确答案】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中
max=a[i][j];
return max;
}
【答案解析】 此题考查的是数组的查找算法。使用for循环嵌套完成对二维数组的遍历。题目要求出最大值,则应采用将所有元素遍历一遍,逐个比较的方式完成。定义变量max,将第一个元素赋值max,然后通过for循环将元素逐个与max比较,遇到比max大的则赋值max,替换原有数据,当嵌套的for循环结束后,max即二维数组中的最大值。