问答题 使用VC6打开考生文件夹下的源程序文件modi2.cpp。完成fun()函数,其功能是:求出M行N列二维数组每行元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。 注意:不能修改程序的其他部分,只能修改fun()函数。 #include #define M 2 #define N 4 void fun(int a[M][N],int*sum) { } void main() { int x[M][N]={7,6,5,2,4,2,8,3); int s; fun(x,&s); cout<
【正确答案】正确答案:int i,j,k,s=0 ; for(i=0;i<M,i++) //外循环 { k=0, for(j=1 ; j<N;j++) if(a[1][k]>a[i][j])k=j, //求得每一行的最小值 s+=a[i][k]; //最小值求和 } *sam=s; //返回求和值
【答案解析】解析:(1)该程序功能是求二维数组每行元素中的最小值,并计算它们的和值。本题解题思路基本可以分为两重循环,外重循环为对二维数组的所有行进行循环,内重循环为对每一行内进行列循环,求出每一行中的最小值。最后求出这些最小值的和。 (2)从已给部分源程序的main主函数开始入手,核心函数void fun(int a[M][N],int*sum)中的a参数为二维数组,sum为要求得的和。 解题思路 (1)依次访问每一行的元素。 (2)在对每一行的访问过程中选出最小数。 (3)将选出的最小数求和。