编写程序,找鞍点。输入1个正整数n(1<=n<=6)和n阶方阵a中的元素,假设方阵a最多有1个鞍点,就输出其下标,否则,输出“NO”(鞍点的元素在该行上最大,在该列上最小)
#include<stdio.h>
#define N 6
#pragma warning(disable:4996)
void main()
{
int i, j, m, n, a[N][N], min, max, ta=0, tb=0, ta1, tempmax = 0, tempmin = 0, flag1 = 0, flag2 = 0;
printf("请输入1个正整数n:");
scanf("%d", &n);
printf("请输入具体数值:");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("矩阵为:\n");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
for (i = 0; i < n; i++)
{
flag2 = 0; tb = 0;
max = a[i][0];
for (j = 0; j < n; j++)
{
if (a[i][j] > max)
{
tempmax = max;
max = a[i][j];
tb = j; //ta = i;
}
}
for (ta1 = 0; ta1 < n; ta1++)
{
min = a[i][tb];
if (a[ta1][tb] < min)
break;
else flag2++;
}
if (flag2 == n)
{
printf("存在,即鞍点的元素在该行上最大,在该列上最小\n其坐标为:(%d,%d)\n", i+1, tb+1);
flag1 = 1;
}
}
if (flag1 == 0) { printf("NO\n"); }
system("pause");
}