#include<bits/stdc++.h>
using namespace std;
int main(){
int a[100][100];
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
cin>>a[i][j];
}
}
int k=0;
int max=0;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(a[i][j]>max){
max=a[i][j];
k = j;
}
}
int h = 0;
int min=1000000000;
for(int u=0;u<5;u++){
if(a[u][k]<min){
min=a[u][k];
h = u;
}
}
if(min==max){
cout<<k<<' '<<h;
return 0;
}
else{
cout<<"not found";
return 0;
}
max = 0;
}
return 0;
}
共 6 条回复
首先应该是输出你找到的 max 所对应的行、列(注意+1),也就是说 h 没用。
其次,not found不应放在循环里,这样会导致第一次没有找到就会直接输出 not found,即使第二次就可以找到。
and你输出也得改啊。。。
shank you
你思路错了,鞍点是指该行的最大值,不是该矩阵的最大值,所以对于每一行的最大值你得同时判断他是不是该列的最小值。
@CPP
@root