查找 矩阵中行与列中均为最大或者最小的数

来源:互联网 发布:mqtt java 编辑:程序博客网 时间:2024/05/21 03:19

要求设计一个算法,设置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;
}

原创粉丝点击