矩阵鞍点

Description
输入一个正整数n(1<= n <= 6)和n阶方阵a中的每一个元素,如果找到a的鞍点(鞍点的元素值在该行上最大,在该列上最小),就输出它的下标,否则输出“NO”(设a最多只有一个鞍点)。
Input
多组测试数据,每组输入一个正整数n,和n行n列的整数,每一行回车结束
Output
Sample Input
3
1 2 3
4 5 6
7 8 9
4
1 2 3 4
5 6 7 8
9 1 5 6
8 5 7 3
Sample Output
0 2
NO

#include<stdio.h>
int main()
{
int i,j,n;
int a[6][6],min[6],max[6];
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
{
max[i]=a[i][0];
for(j=0;j<n;j++)
{
if(a[i][j]>max[i])
max[i]=a[i][j];//先判断行,共n个行最大数
}
}
for(j=0;j<n;j++)
{
min[j]=a[0][j];
for(i=0;i<n;i++)
{
if(a[i][j]<min[j])
min[j]=a[i][j];//再判列,共n个列最大数
}
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)//不加for循环a【i】【j】是最后一个列最大数
{
if(max[i]==min[j])
{
printf("%d %d\n",i,j);
goto loop; //goto后面加loop表示跳到loop执行
}

		}
	printf("NO\n");
	loop:; //loop后面加冒号,冒号后面加语句就执行,不加表示跳过      
}
return 0;

}

猜你喜欢

转载自blog.csdn.net/z2431435/article/details/84180500