View Code of Problem 85

#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.


Back to problem 85