寻找矩阵行最大列最小元素

本文介绍了一个C语言程序,用于找出二维矩阵中既是所在行的最大值又是所在列的最小值的元素(即鞍点)。程序首先读取用户输入的矩阵,然后遍历每个元素以确定是否存在鞍点,并输出结果。


#include  <stdio.h>
#define   M   3
#define   N   4
void fun(int  (*a)[N])
{ int  i=0,j,find=0,rmax,c,k;
  while( (i<M) && (!find))
  {  
  	 rmax=a[i][0];  //行第一个元素赋给rmax; 
	 c=0;
     for(j=1; j<N; j++)
       if(rmax<a[i][j]) 
	   {
         rmax=a[i][j]; c= j ; //找到行最大元素,并将该数的列数保存到c 
	   }
     find=1; k=0;
     while(k<M && find) 
	 {
       if (k!=i && a[k][c]<=rmax)  find= 0 ;//判断是不是列最小,不是则置0 
       k++;
     }
     if(find) printf("find: a[%d][%d]=%d\n",i,c,a[i][c]);
      i++ ;
  }
  if(!find) printf("not found!\n");
}
main()
{ int  x[M][N],i,j;
  printf("Enter number for array:\n");
  for(i=0; i<M; i++)
    for(j=0; j<N; j++) scanf("%d",&x[i][j]);
  printf("The array:\n");
  for(i=0; i<M; i++)
  {  for(j=0; j<N; j++) printf("%3d",x[i][j]);
     printf("\n\n");
  }
  fun(x);
}
/*
1 2 13 4
7 8 10 6
3 5 9 7
*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值