Problem 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
参考代码
#include<stdio.h>
int main()
{
int a[100][100],m,n,i,j,k,d,h=0;
scanf("%d %d",&m,&n);
for(j=0;j<m;j++)
for(i=0;i<n;i++)
scanf("%d",&a[j][i]);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
for(k=0;k<m;k++)
{
if(a[i][j]>a[k][j])
break;
}
for(d=0;d<n;d++)
{
if(a[i][j]<a[i][d])
break;
}
if(k==m&&d==n)
{
printf("Array[%d][%d]=%d\n",i,j,a[i][j]);
h++;
}
}
if(h==0)
printf("None\n");
return 0;
}