关于PTA 7-56 找鞍点的代码实现及测试分析

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式:

输入第一行给出一个正整数n1)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

输出在一行中按照“行下标 列下标”(下标从0开始)的格式输出鞍点的位置。如果鞍点不存在,则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。

输入样例1:

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

输出样例1:

2 1

输入样例2:

2
1 7
4 1

输出样例2:

NONE

编码思路1:1.找出每一行的最大值及其下标;2.找出下标对应列的最小值;3.检查行号是否相等。

编码思路2:1.循环检查每一个元素是否是该行最大值和该列最小值。

测试分析:采用思路1设计的代码有一个死角即当某一行的最大值不止1个时,靠后的最大值会被忽视而只采用第一个最大值检验,

或者某一列的最小值不止1个时,靠后的最小值会被被忽略,造成遗漏。

#include

int main()
{
//  int n=0;
//  scanf("%d",&n);
//  int a[n][n];
//  for(int i=0;ia[k][j])
			{
				minf=0;
				break;
			}
		}
		if(maxf==1&&minf==1)
		{
			flag=1;
			printf("%d %d",i,j);
			break;
		}
	}
	if(flag==1)
	{
		break;
	}
  }
  if(flag==0)
  {
    printf("NONE");
  }
  return 0;
}

你可能感兴趣的:(关于PTA 7-56 找鞍点的代码实现及测试分析)