鞍點計算

鞍點計算

Time Limit: 1000ms   Memory limit: 65536K  有疑問?點這裏^_^

題目描述

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

輸入

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

輸出

按下列格式輸出鞍點: 

Array[i][j]=x 

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

一個二維數組並不一定存在鞍點,此時請輸出None。
 
我們保證不會出現兩個鞍點的情況,比如:
 
3 3 
1 2 3
1 2 3 
3 6 8 

示例輸入

3 3
1 2 3
4 5 6
7 8 9

示例輸出

Array[0][2]=3

///應該把每行所在的第一個數字定義爲max(自己在這裏出錯了,把a[0][0]定義成max,再用的循環導致出錯)

  1. #include<stdio.h>  
  2. int main()  
  3. {  
  4.     int n, m, a[20][20], ii, jj, l, max, min;  
  5.     while(~scanf("%d%d", &n, &m))  
  6.     {  
  7.         for(int i=0; i<n; i++)  
  8.         {  
  9.             for(int j=0; j<m; j++)  
  10.             {  
  11.                 scanf("%d", &a[i][j]);  
  12.             }  
  13.         }  
  14.         int i=0, j=0;  
  15.         for(i=0; i<n; i++)  
  16.         {  
  17.             max=a[i][0];  
  18.             for(int j=0; j<m; j++)  
  19.             {  
  20.                 if(a[i][j]>max)  
  21.                 {  
  22.                     max=a[i][j];  
  23.                     ii=i;  
  24.                     jj=j;  
  25.                 }  
  26.             }  
  27.             l=0;  
  28.             min=max;  
  29.             for(int t=0; t<n; t++)  
  30.             {  
  31.                 if(a[t][jj]<min)  
  32.                 {  
  33.                     min=a[t][jj];  
  34.                 }  
  35.             }  
  36.             if(min==max)  
  37.             {  
  38.                 printf("Array[%d][%d]=%d", ii, jj, max);  
  39.                 l=1;  
  40.                 break;  
  41.             }  
  42.         }  
  43.         if(l==0)  
  44.             printf("None\n");  
  45.         printf("\n");  
  46.     }  
  47.     return 0;  
  48. }   
  49.   

 

 

發佈了49 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章