要求设计一个算法,设置m*n(m=3,n=3)的矩阵元素后,统计这个矩阵中具有以下特征的元素的个数,并输出他们的坐标及数值:他们既是所在行中的最小值又是所在列中的最小值,或者,他们既是所在行中的最大值,又是所在列中的最大值。
int findmax(int a[][3],int m,int i)
{
int max=a[i][0],maxj=0;
for(int j=0;j<3;j++)
{
if(max<a[i][j])
{
max=a[i][j];
maxj=j;
}
}
int k=0;
while(k<m)
{
if(max>=a[k][j])
k++;
else
break;
}
if(k==m)
return max;
else
return 0;
}
int findmin(int a[][3],int m,int i)
{
int min=a[i][0],minj=0;
for(int j=0;j<3;j++)
{
if(min>a[i][j])
{
min=a[i][j];
minj=j;
}
}
int k=0;
while(k<m)
{
if(min<a[k][j])
k++;
else
break;
}
if(k==m)
return min;
else
return 0;
}
void main()
{
int i,j;
int a[3][3],k=1;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=k++;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
int m=findmin(a,3,0);
cout<<m<<endl;
}

本文介绍了一种算法,用于在给定的m*n矩阵中找到同时为所在行和列的最小值或最大值的元素,并输出其坐标和数量。
4694

被折叠的 条评论
为什么被折叠?



