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;
}