求一个矩阵的鞍点(在其所在行最小,其所在列最大)
以行为主元进行,找出每行最小值,再找出最小值所在列的最大值,如果两值相同则为鞍点
#include<stdio.h>
int main(void)
{
int i, j;//行i 列j
int d = 0, e = 0, f; //行最大d 列最大e
int a, b;
int temp, flag = 0;
int c[50][50];
printf("请输入矩阵行数和列数");
scanf("%d %d", &i, &j);
for (a = 0; a < i; a++)
{
for (b = 0; b < j; b++)
{
scanf("%d", &c[a][b]);
}
}
for (a = 0; a < i; a++)
{
d = c[a][1];
for (b = 0; b < j; b++)
{
if (d > c[a][b])
{
d = c[a][b];
f = b;
}
}
for (temp = 0; temp < i; temp++)
{
if (e < c[temp][f])
{
e = c[temp][f];
}
}
if (d == e)
{
printf("鞍点为%d\n", d);
flag = 1;
}
}
if (flag == 0)
{
printf("此矩阵没有鞍点\n");
}
return 0;
}