程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 問題一百四十:鞍點

問題一百四十:鞍點

編輯:關於C語言

Description


找出具有m行n列二維數組Array的“鞍點”,即該位置上的元素在該行上最大,在該列上最小,其中1<=m,n<=10。


Input


輸入數據有多行,第一行有兩個數m和n,下面有m行,每行有n個數。


Output

 


按下列格式輸出鞍點:


Array[i][j]=x


其中x代表鞍點,i和j為鞍點所在的數組行和列下標,我們規定數組下標從0開始。


一個二維數組並不一定存在鞍點,此時請輸出None


我們保證不會出現兩個鞍點的情況,比如:


3 3
1 2 3
1 2 3
3 6 8

 


Sample Input

 


3 3
1 2 3
4 5 6
7 8 9


Sample Output

 


Array[0][2]=3

 

 


[plain]  #include <stdio.h> 
 
int main() 

      int i; 
      int j; 
      int l; 
      int x; 
      int y; 
      int k; 
      int n; 
      int m; 
      int flag; 
      int num[10][10]; 
 
      while(scanf("%d %d", &n, &m)!=EOF) 
      { 
          for(i=0; i<n; i++) 
          { 
               for(j=0; j<m; j++) 
               { 
                   scanf("%d", &num[i][j]); 
               } 
          } 
           
          flag=0; 
          x=0; 
          y=0; 
          for(i=0; i<n; i++) 
          { 
 
             for(j=0; j<m; j++) 
             {   
                 if(j==0) 
                 { 
                     k=num[i][j]; 
                 } 
                 
                if(k<num[i][j]) 
                { 
                   k=num[i][j]; 
                   x=i; 
                   y=j; 
                } 
             } 
 
             for(l=0; l<n; l++) 
             { 
                  if(k<=num[l][y]) 
                  { 
                    flag=1; 
                  } 
                  else 
                  { 
                     flag=0; 
                      break; 
                  } 
             } 
 
             if(flag) 
             { 
                 printf("Array[%d][%d]=%d\n", x, y, k); 
                 break; 
             } 
          } 
 
          if(flag==0) 
          { 
              printf("None\n"); 
          } 
      } 
 
     return 0; 

#include <stdio.h>

int main()
{
      int i;
      int j;
      int l;
      int x;
      int y;
      int k;
      int n;
      int m;
      int flag;
      int num[10][10];

      while(scanf("%d %d", &n, &m)!=EOF)
      {
          for(i=0; i<n; i++)
          {
               for(j=0; j<m; j++)
               {
                   scanf("%d", &num[i][j]);
               }
          }
         
          flag=0;
    x=0;
    y=0;
          for(i=0; i<n; i++)
          {

             for(j=0; j<m; j++)
             { 
     if(j==0)
     {
      k=num[i][j];
     }
               
                if(k<num[i][j])
                {
                   k=num[i][j];
                   x=i;
                   y=j;
                }
             }

             for(l=0; l<n; l++)
             {
                  if(k<=num[l][y])
                  {
                    flag=1;
                  }
                  else
                  {
                     flag=0;
                      break;
                  }
             }

             if(flag)
             {
                 printf("Array[%d][%d]=%d\n", x, y, k);
                 break;
             }
          }

          if(flag==0)
          {
              printf("None\n");
          }
      }

     return 0;
}

\

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved