C程序--找鞍点

#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
    int i=0 , j=0,k=0, n,a[N][N],max ,min ;
    int flag_i ,flag_j,flag = 0 ;
    printf("input n : ");
    scanf("%d",&n);
    for(i = 0; i < n ; i++)
    {
          for(j = 0 ; j<n ;j++)
          {
             scanf("%d" ,&a[i][j]);
          }
    }
    //找一行中最大值,并标记列数
        for(i = 0 ; i < n ;i++)
        {
              j = 0 ;
              max = a[i][j];
              for(j = 0 ;j< n ;j++)
              {
                    if(a[i][j] > max)
                    {
                       max = a[i][j] ;
                       flag_j = j ;  //固定列数
                       flag_i = i ;
                    }
              }
              //找标记列中的最小值,并找出行数,找到跳出循环
              min = a[0][flag_j] ;
            for(k = 0  ; k<n ; k++ )
                  {
                    if(a[k][flag_j] < min && k == flag_i )
                       {
                          flag = 1;
                          break ;
                       }

                  }
                   //跳出循环
                  if( k == flag_i)
                        break ;
            }
if(flag == 1)
      printf("a[%d][%d] = %d\n",flag_i ,flag_j ,a[flag_i][flag_j]);
else
      printf("NO\n");




    return 0;
}

 

发布了146 篇原创文章 · 获赞 59 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/naturly/article/details/105551664