求一个矩阵的鞍点(在其所在行最小,其所在列最大)

求一个矩阵的鞍点(在其所在行最小,其所在列最大)

以行为主元进行,找出每行最小值,再找出最小值所在列的最大值,如果两值相同则为鞍点

#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;
}

猜你喜欢

转载自blog.csdn.net/l455702707/article/details/86669481
今日推荐