描述
如果矩阵中元素在行中是最小的,而在列中是最大的,则称这个元素师矩阵的鞍点。
输入
输入第一行是n和m,表示矩阵的行数和列数。1<=n,m<=10
紧接着n行,每行有m个整数,整数之间用空格分开。
输出
如果矩阵不存在鞍点,则输出No;
如果存在鞍点,则显示鞍点的行号和列号,中间用空格分开。
如果存在多个,则输出行号最小的;若行号一样,则输出列号最小。
样例输入
3 4
1 2 3 4
9 8 7 6
4 5 6 3
样例输出
2 4
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int n,m,i,j,k,a[100][10],min,minj,f;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)//从0开始
for(j=0;j<m;j++)
scanf("%d ",&a[i][j]);
for(i=0;i<n;i++)
{
min=a[i][0];
minj=0;
for(j=0;j<m;j++)
if(a[i][j]<min)
{
min=a[i][j];
minj=j;
}//找出行中最小的
f=1;
for(k=0;k<n;k++)
if(min<a[k][minj])
{
f=0;
continue;
}//找出列中最大的
if(f)
{
printf("%d %d",i+1,minj+1);
break;
}
}
if(!f)
printf("No");
return 0;
}