以下程序中的select()函数功能是:在N行M列的二维数组中选出一个最大值作为函数值返回,并通过形参传回此最大值的行下标。请填空完成此程序。 #include<iostream> #define N 3 #define M 3 using namespace std; int select(int a[N][M],int *n) { int i,j,row=0,colum=0; for(i=0;i<N;i++) for(i=0;j<M;j++) if(a[i][j]>a[row][colum]) { row=i; colum=j; } *n= 【7】 ; return 【8】 ; } int main() { int a[N][M]={9,11,23,6,1,15,9,17,20}; int max,n; max=select(a,&n); cout<<"max="<<max<<"line="<<n<<end1; return 0; }
参考答案:[7]row[8]a[row][colum]
解析: 通过对题意的分析不难看出:在select()函数中,变量row的作用是用来标记最大元素的行下标值,colum的作用是用来记下最大元素的列下标:函数select()通过循环求得数组的最大值的行下标、列下标并分别存放在变量row和colum中。根据题意,应把行下标赋值给形参指针变量n,这样就通过地址传递的方式改变了主调函数中的实参,即把最大值的行下标传回到主调函数中。然后把最大值a[row][colum]作为函数返回值。