求矩阵马鞍点 (Get matrix's saddle point)

原创 2018年04月16日 23:20:41

问题描述:求一个n*m阶矩阵的马鞍点

马鞍点定义:在一个矩阵中,若一个元素为该行最小值,该列最大值,则称该元素为这个矩阵的一个马鞍点

如:0 1 2 1 0     则马鞍点为a[1][0]和a[1][4]
       1 2 3 2 1 

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#define row 5
#define col 5
using namespace std;

int rmin[row], cmax[col];

void Matrix(int a[row][col])                //求row*col阶矩阵中的马鞍点
{
	int i, j;
	bool have = false;
	for (i = 0; i < row; i++)				//求每行最小值
	{
		rmin[i] = a[i][0];
		for (j = 1; j < col; j++)
			if (a[i][j] < rmin[i])
				rmin[i] = a[i][j];
	}
	for (j = 0; j < col; j++)				//求每列最大值
	{
		cmax[j] = a[0][j];
		for (i = 1; i < row; i++)
			if (cmax[j] < a[i][j])
				cmax[j] = a[i][j];
	}

	for (i = 0; i<row; i++)					//查询是否存在马鞍点
		for (j = 0; j<col; j++)
			if (rmin[i] == cmax[j])///
			{
				printf("a[%d][%d]=%d\n", i, j, a[i][j]);
				have = true;
			}
	if (!have)
		printf("没有马鞍点\n");
}
int main()
{
	int a[row][col];
	int i, j;
	printf("请输入%d*%d阶矩阵:\n", row, col);
	for (i = 0; i < row; i++)
		for (j = 0; j < col; j++)
			scanf_s("%d", &a[i][j]);
	printf("矩阵中的马鞍点为:\n");
	Matrix(a);
	system("pause");
}
编译环境:Visual Studio 2015

[数据结构_2]Saddle_Point_pro(马鞍点_改进版)

//Saddle_Point_pro.cpp #include #define M 4 #define N 4 void MinMax(int A[M][N]) { int i,j; b...
  • u010374183
  • u010374183
  • 2014-04-13 19:12:17
  • 1333

数据结构求一个矩阵的马鞍点

马鞍点就是本行中最小的但是本列中最大的数 如图: 代码: #include #include #include using namespace std; #define M 4 #defi...
  • a716121
  • a716121
  • 2016-04-21 20:31:45
  • 3013

极值点、驻点、鞍点、拐点

极值点:函数从递增变换到递减,或者从递减变换到递增的点 极值点不一定是驻点,驻点要求一阶导数必须存在,而极值点对导数没有要求。...
  • lanchunhui
  • lanchunhui
  • 2016-09-11 17:23:49
  • 4878

求一个矩阵的马鞍点

/*exp5-2.cpp*/ #include #define M 4 #define N 4 void MinMax(int A[M][N]) {  int i,j,have=0;  ...
  • lilanfeng1991
  • lilanfeng1991
  • 2013-01-28 09:20:27
  • 1087

找出一个二维数组里的鞍点

 /**********************************************************************************鞍点,即该行上最大,该列上最小的...
  • tangxuankai
  • tangxuankai
  • 2008-11-23 16:30:00
  • 4971

数据结构示例之展示矩阵马鞍点

以下为展示矩阵马鞍点的简单示例: 1.用c语言实现的版本 #include "stdio.h" #define m 3 #define n 3 /*求矩阵A中的马鞍点*/ void G...
  • chinawangfei
  • chinawangfei
  • 2016-10-26 15:35:22
  • 662

输出马鞍点

/*若矩阵Am×n中的某个元素aij是第i行的最小值, 同时又是第j列中的最大值,则称此元素为该矩阵中的一个马鞍点。 假设以二维数组存储矩阵Am×n,试编写求出矩阵中一个马鞍点的算法, 并分析你...
  • e6894853
  • e6894853
  • 2012-11-25 22:49:25
  • 3344

数据结构--数组--马鞍点

如果矩阵A中存在这样的一个元素A[i][j]满足我条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马点。编写一个程序计算出m*n的矩阵A的所有马鞍点 #i...
  • wangrunmin
  • wangrunmin
  • 2012-07-31 01:32:58
  • 2263

c语言寻找马鞍点

  • 2014年03月21日 16:07
  • 1KB
  • 下载

求给定矩阵的马鞍点

西安电子科技大学 计算机考研机试 2010-B请写一个程序,找出给定矩阵的马鞍点。若一个矩阵中的某元素在其所在行最小而在其所在列最大,则该元素为矩阵的一个马鞍点。输入说明:输入数据由m+1行构成,第一...
  • ZT7524
  • ZT7524
  • 2018-03-16 10:08:33
  • 24
收藏助手
不良信息举报
您举报文章:求矩阵马鞍点 (Get matrix's saddle point)
举报原因:
原因补充:

(最多只允许输入30个字)