问题描述
找一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。鞍点最多一个,也可能不存在。
输入
第一行是二维数组的行数和列数(行和列的数目均不大于100),之后为二维数组。
输出
如果存在鞍点,输出鞍点所在的行、列及其值,每个数后一个空格;如果不存在,输出"N"
输入样列
3 3
11 22 33
99 33 55
44 55 66
输出样例
0 2 33
#include<stdio.h>
int main()
{
int m,n,x,y;
scanf("%d%d",&m,&n);
char a[m][n];
int min,max,i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",a[m][n]);
}
}
max=a[i][0];
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(a[i][j]>max){
max=a[i][j];
x=i;
y=j;
}
}
}
min=a[0][y];
for(i=0;i<m;i++){
if(a[i][y]<min)
min=a[i][y];
}
if(min==max) printf("%d %d %d\n",x,y,min);
else printf("N\n");
return 0;
}