矩阵的鞍点就是指它在本行中的值最大,在本列中的值最小。

求解思路:

  1. 求出每行的最大值MaxRow以及每列的最小值MinColumn
  2. 保存行最大值的位置和列最小值的位置
  3. 如果行最大值得位置和列最小值的相等则输出此鞍点(如果没有鞍点则输出无)

代码如下:

#include <iostream>
#include<Cmath>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int MaxRow[]={}; //保存行最大值的行位置
int MaxColumn[]={}; //保存行最大值的列位置
int MinRow[]={}; //保存列最小值的行位置
int MinColumn[]={}; //保存列最小值的列位置
int RowMax[]={}; //行最大值
int ColumnMin[]={}; //列最大值 int a[n][m];
for(int i=;i<n;i++)
for(int j=;j<m;j++)
{
cin>>a[i][j];
} int count=;
for(int i=;i<;i++)
ColumnMin[i]=; for(int i=;i<n;i++) {
for(int j=;j<m;j++){
if(a[i][j]>RowMax[i]){
RowMax[i]=a[i][j];
MaxRow[i]=i;
MaxColumn[i]=j;
}
if(a[j][i]<ColumnMin[i])
{
ColumnMin[i]=a[j][i];
MinColumn[i]=i;
MinRow[i]=j;
}
}
}
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{ if (MaxRow[i]==MinRow[j]&&MaxColumn[i]==MinColumn[j])
{
cout<<"鞍点在第"<<MaxRow[i]+<<"行,第"<<MaxColumn[i]+<<"列的"<<a[MaxRow[i]][MaxColumn[i]]<<endl;
count++;
}
}
}
if(count==)
{
cout<<"无"<<endl;
} return ;
}

最新文章

  1. python-open文件处理
  2. 【USACO 3.2】Magic Squares
  3. TAC 坦克队
  4. Jenkins console输出乱码???
  5. xmpp整理笔记:xmppFramework框架的导入和介绍
  6. jquery引用方法时传递参数
  7. Monkey类、People类和主类 E。
  8. Android IOS WebRTC 音视频开发总结(五十)-- 技术服务如何定价?
  9. 基于webpivottable做的透视表
  10. [未完成]关于枚举(Enum)
  11. iOS类初始化
  12. Fedora 18 安装前指南
  13. UIButton上图片和文字的位置调整
  14. CodeIgniter结合Bootstrap
  15. 图解:如何U盘装Win7系统(傻瓜式装机) + 分区步骤图解(用WIN7自带管理工具)
  16. leveldb性能分析
  17. vim中c/c++源码跳转
  18. SQL手动注入解析
  19. 卸载oracle 11g数据库
  20. Oracle学习笔记_09_字符串相关函数

热门文章

  1. 对 js 高程 Preflighted Reqeusts 的理解
  2. dreamweaver中Dw设置svn进行版本控制
  3. 170420、maven内置常量
  4. react 快速 点击
  5. Android实时推送
  6. arcgis server 无法手动删除切片
  7. Zipline Beginner Tutorial
  8. Storm简介及使用
  9. vue监听浏览器窗口大小变化
  10. json中load和loads区别