找出一个二维数组中的鞍点。即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点,以下是我写的代码,灵活可变 ,二维数组中的值可以手动输入,也可直接更改,看你怎么用了。
//找出一个二维数组中的鞍点。即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点
#include <stdio.h>
int Row(int num, int b[3][4])
{
int line1 = 0;
for (int k = 0; k < 3; k++)
{
if (b[k][num] < b[line1][num])
{
line1 = k;
// continue;
}
}
return line1;
}
int main()
{
int a[3][4] = {{4, 6, 5, 4},
{8, 7, 1, 9},
{3, 14, 11, 12}};
int line = 0, colunm = 0;
int flag = 0;
for (int i = 0; i < 3; i++)
{
for (int j = 1; j < 4; j++)
{
if (a[i][j] > a[i][colunm])
{
line = i;
colunm = j;
}
}
if (line == (Row(colunm, a)))
{
printf("该二维数组的鞍点是:%d\n", a[line][colunm]);
flag = 1;
}
}
if (flag==0)
{
printf("该二维数组没有鞍点\n");
}
return 0;
}