本题除了对二维数组各个元素遍历判断外,还可提前将每个行最大,列最小的元素
放入两个数组再进行判断。
#include<stdio.h>
int main(void){
int n;
scanf("%d",&n);
int a[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
int m[n],_n[n];
for(int i=0;i<n;i++){
int max=a[i][0];
for(int j=0;j<n;j++){
if(a[i][j]>max){
max=a[i][j];
}
}
m[i]=max;
}
for(int i=0;i<n;i++){
int min=a[0][i];
for(int j=0;j<n;j++){
if(a[j][i]<min){
min=a[j][i];
}
}
_n[i]=min;
}
int count=0;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(m[i]==_n[j]){
//printf("%d",m[i]); 目标元素
printf("%d %d",i,j); //元素对应的下标,
count++;
}
}
}
if(count==0){
printf("NONE");
}
}