输入:输入共有两行,第一行输入数组的大小m与n
第二行输入该数组所有元素
输出:若存在鞍点,则输出这个鞍点的值
若不存在鞍点,则输出没有鞍点
#include<stdio.h>
int main() {
int a[50][50] = {0}, max, min, i, j, k, m, x, y;
printf("请输入数组的行数 列数:");
scanf("%d %d", &x, &y);
for (i = 0; i < x; i++)
for (j = 0; j < y; j++) {
printf("请输入数组数据:");
scanf("%d", &a[i][j]);
}
for (i = 0; i < x; i++) {
max = a[i][0];//假定max
for (j = 0; j < y; j++)
if (a[i][j] > max) {
max = a[i][j];//找到i行的最大值
k = j;
}
min = max;//假定max是该列最小值,判断是否符合鞍点的第二个条件
for (m = 0; m < x; m++) {
if (min > a[m][k])
break;
}
if (m == x) {
printf("鞍点为%d", a[i][k]);
break;
}
}
if (i == x) printf("没有鞍点");
return 0;
}
结果如下: