OJ题目:计算鞍点(C语言)


描述

给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

格式
输入格式

输入包含一个5行5列的矩阵。

输出格式

如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"。
在这里插入图片描述
代码:

#include<stdio.h>

int main()
{
	int a[5][5] = {0}, b[5] = {0}, c[5] = {0};
	int tag = 0;
	
	for(int i=0; i<5; i++)
	{
		for(int j=0; j<5; j++)
		{
			scanf("%d", &a[i][j]);
			if(i == 0)	c[j] = a[i][j];	//先让每列的最小值初始化为每列的第一个元素 
			if(b[i] < a[i][j])	b[i] = a[i][j];	//存储每行的最大值 
			if(c[j] > a[i][j])	c[j] = a[i][j];	//存储每列的最小值 
		}
	}
	for(int x=0; x<5; x++)
	{
		for(int y=0; y<5; y++)
		{
			if(b[x] == c[y])	//如果存在两个数组中有相同的元素,输出该元素行列信息 
			{
				printf("%d %d %d", x+1, y+1, b[x]);
				tag = 1;	//tag = 1:存在鞍点; tag = 0:不存在鞍点 
			}
		}
	}
	if(tag == 0)	printf("not found");
	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值