计算矩阵的马鞍点

该博客介绍了如何计算矩阵的马鞍点,即找到矩阵中同时是所在行的最小值和所在列的最大值的元素。算法思路包括找出每行最小值的列号,然后判断这些最小值是否也是其列的最大值,最终确定马鞍点。
摘要由CSDN通过智能技术生成
请写一个程序, 找出给定矩阵的马鞍点. 若一个矩阵中
的某元素在其所在行最小而在其所在列最大,则该元素为矩阵的一个马鞍点

输入说明: 输入数据由 m+1 行构成,第一行只有两个整数 m 和 n (0<m<100,0<n<100),
分别表示矩阵的行数和列数,接下来m行,每行n个整数表示矩阵元素(矩阵中元素互不相同),
整数之间以空格间隔.
输出说明: 在一行上输出马鞍点的行号,列号(行号和列号从0开始计数)
及元素的值(用一个空格分隔), 之后换行; 若不存在马鞍点,则输出一个字符串"no"后换行
输入示例:
4 3
11   13   121
407  72   88
23	 58   1
134  30   62


4 3
11   13   12
407  72   8
23	 58   1
134  80   62
输出示例:
1 1 72

思路:

1.找出每一行的最小值,并记录列号
2.判断是否为每一列的最大值
3.正常退出循环,则为马鞍点

代码如下:

/*
	请写一个程序, 找出给定矩阵的马鞍点. 若一个矩阵中
	的某元素在其所在行最小而在其所在列最大,则该元素为矩阵的一个马鞍点

	输入说明: 输入数据由 m+1 行构成,第一行只有两个整数 m 和 n (0<m<100,0<n<100),
	分别表示矩阵的行数和列数,接下来m行,每行n个整数表示矩阵元素(矩阵中元素互不相同),
	整数之间以空格间隔.
	输出说明: 在一行上输出马鞍点的行号,列号(行号和列号从0开始计数)
	及元素的值(用一个空格分隔), 之后换行; 若不存在马鞍点,则输出一个字符串"no"后换行
    输入示例:
	4 3
	11   13   121
	407  72   88
	23	 58   1
	134  30   62
	

	4 3
	11   13   12
	407  72   8
	23	 58   1
	134  80   62
	输出示例:
	1 1 72
*/
#include<stdio.h>
int main(void){
   
	int m,n;
	int i,j
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值