#include<stdio.h> #include<stdlib.h> #include<iostream> #include<math.h> using namespace std; const int maxn=10010; int arr[10010][10010]; //找到这一行最小值,直接判断是否在该行为最大(标志位)若为最大直接输出,不用记录 int main() { int m,n; cin>>m>>n; int i,j; int min=0; int max=0; int a=0;//用来记录行 int b=0;//用来记录列 for(i=0;i<m;i++) for(j=0;j<n;j++) { scanf("%d",&arr[i][j]); } for(i=0;i<m;i++) { min=arr[i][0];//定义max为每一行的开头第一个数字 for(j=0;j<n;j++) { if(arr[i][j]<=min) { min=arr[i][j]; b=j; }//找到了该行最小值的行数和列数 //判断是否在该列最大 }//遍历第b列 //printf("i=%d,b=%d\n",i,b); int flag=1; for(a=0;a<=n;a++) { if(arr[a][b]>min) { flag=0; break; } } if(flag) { printf("%d %d\n",i+1,b+1); } } // system("pause"); } |
Double click to view unformatted code.