一、题目
输入1个正整数n(1<=n<=6)和n阶方阵a中的元素,假设方阵a最多有1个鞍点,如果找到a的鞍点,就输出其下标,否则,输出“NO”。鞍点的元素值在该行上最大,在该列上最小。试编写相应程序。
二、输入输出示例:(下划线代表输入的内容)
示例1:
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
a[2][1]=6
示例2:
2
1 7
4 1
NO
三、思路:首先找出第1行的最大值,然后判断该值在所在列是否最小,若是,则该值为鞍点并跳出循环;若否,则按照该思路开始遍历第2行,第3行...若遍历完最后一行仍然没有找到鞍点,则无鞍点。
四、代码实现:(IDE为visual studio 2019)
#include <stdio.h>
int main()
{
int n, i, j, k, col, flag;
int a[6][6];
scanf_s("%d", &n);
//给二维数组赋值
for ( i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf_s("%d", &a[i][j]);
}
}
//开始找鞍点
for ( i = 0; i < n; i++)
{
col = 0;
flag =