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