鞍點:即該位置上的元素在該行最大、該列最小、也可能無鞍點
#include <stdio.h>
#define M 6
#define N 6
//MN用於定義數組
int main()
{
int m, n;
printf("輸入行數和列數:");
scanf("%d %d", &m, &n);
int i, j, max, maxj, k, flag = 0;
int a[M][N] = { 0 };
printf("請輸入數組:");
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
}
printf("\n");
for (i = 0; i < m; i++)
{
max = a[i][0];
maxj = 0;
for (j = 0; j < n; j++)
{
if (a[i][j]>max)
{
max = a[i][j];
maxj = j;
}
}
flag = 1;
for (k = 0; k < m; k++)
{
if (max>a[k][maxj])
flag = 0;
continue;
}
if (flag)
{
printf("存在鞍點a[%d][%d]=%d", i, maxj, max);
break;
}
}
if (!flag)
printf("沒有鞍點");
printf("\n");
system("pause");
return 0;
}