C++求矩阵的鞍点
2024-08-29 03:54:17
矩阵的鞍点就是指它在本行中的值最大,在本列中的值最小。
求解思路:
- 求出每行的最大值MaxRow以及每列的最小值MinColumn
- 保存行最大值的位置和列最小值的位置
- 如果行最大值得位置和列最小值的相等则输出此鞍点(如果没有鞍点则输出无)
代码如下:
#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 ;
}
最新文章
- python-open文件处理
- 【USACO 3.2】Magic Squares
- TAC 坦克队
- Jenkins console输出乱码???
- xmpp整理笔记:xmppFramework框架的导入和介绍
- jquery引用方法时传递参数
- Monkey类、People类和主类 E。
- Android IOS WebRTC 音视频开发总结(五十)-- 技术服务如何定价?
- 基于webpivottable做的透视表
- [未完成]关于枚举(Enum)
- iOS类初始化
- Fedora 18 安装前指南
- UIButton上图片和文字的位置调整
- CodeIgniter结合Bootstrap
- 图解:如何U盘装Win7系统(傻瓜式装机) + 分区步骤图解(用WIN7自带管理工具)
- leveldb性能分析
- vim中c/c++源码跳转
- SQL手动注入解析
- 卸载oracle 11g数据库
- Oracle学习笔记_09_字符串相关函数