问答题 要求设计一个算法,设置m×n(m=2,n=3)阶矩阵的元素后,统计这个矩阵中具有下列特征的元素个数,并输出它们的坐标及数值:它们既是所在行中的最小值,又是所在列中的最小值:或者,它们既是所在行中的最大值,又是所在列中的最大值。
【正确答案】实现本题的代码如下:
void findmin(int R[2][3],int m,int n)
{
int i,j,k,min,minj,find;
cout<<"最小值: ";
for(i=0;i<m;++i) //处理第i列
{
min=R[i][0];
minj=0;
for(j=1;j<n;++j) //找出第i行上的最小值,列号为minj
if(R[i][j]<min)
{
min=R[i][j];
minj=j;
}
find=1;
for(k=0;k<m;++k) //判断min是否为minj列上的最小值
if(min>R[k][mini])
{
find=0;
break;
}
if(find)
cout<<"("<<i<<","<<mini<<"): "<<min<<" ";
}
cout<<endl;
}
void findmax(int R[2][3],int m,int n)
{
int i,j,k,max,maxj,find;
cout<<"最大值: ";
for(i=0;i {
max=R[i][0];
maxj=0;
for(j=l;j<n;++j) //找出第i行上的最大值,列号为maxj
if(R[i][j]>max)
{
max=R[i][j];
maxj=j;
}
find=1;
for(k=0;k<m;++k) //判断max是否为maxj列上的最大值
if(max<R[k][maxj])
{
find=0;
break;
}
if(find)
cout<<"("<<i<<","<<maxj<<"): "<<max<<" ";
}
cout<<endl;
}
【答案解析】