自学内容网 自学内容网

求矩阵的鞍点

题目:求一个矩阵的鞍点,即行上最小而列上最大的元素。

代码:(多个最小值认为第一个为最小,更严谨的代码在最后)

#include<iostream>
#include<time.h>
using namespace std;

int main(){
int n,m;
cout<<"请输入矩阵的行数和列数: "<<endl;
cin>>n>>m;
int a[n+1][m+1];
srand(time(NULL));
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=rand()%10;
}
}

//a[1][1]=5;a[1][2]=10;a[1][3]=15;
//a[2][1]=2;a[2][2]=7;a[2][3]=8;
//a[3][1]=1;a[3][2]=9;a[3][3]=10;
//cout<<"矩阵为:"<<endl; 
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
int cnt=0;//cnt个鞍点 
for(int i=1;i<=n;i++){ 
//找第i行的最小值的列数 
int min=a[i][1],mini=1;
for(int j=1;j<=m;j++){
if(min>a[i][j]){
min=a[i][j];
mini=j; 
}
} 
bool flag=true;
//判断第mini列上a[i][mini]是否为最大
for(int k=1;k<=n;k++){
if(a[k][mini]>a[i][mini]){
flag=false;
break;
}
} 
if(flag){
cnt++;
cout<<"鞍点:"<<a[i][mini]<<endl;
}
}
if(cnt==0){
cout<<"没有鞍点"<<endl;
} 
return 0;
}

 代码:

#include<iostream>
#include<time.h>
using namespace std;

void maxJ(int mini){//判断第mini列上a[i][mini]是否为最大

}
int main(){
int n,m;
cout<<"请输入矩阵的行数和列数: "<<endl;
cin>>n>>m;
int a[n][m];
//srand(time(NULL));
//for(int i=1;i<=n;i++){
//for(int j=1;j<=m;j++){
//a[i][j]=rand()%10;
//}
//}
a[1][1]=5;a[1][2]=5;a[1][3]=15;
a[2][1]=2;a[2][2]=2;a[2][3]=8;
a[3][1]=1;a[3][2]=1;a[3][3]=10;
cout<<"矩阵为:"<<endl; 
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
int cnt=0;//cnt个鞍点 
for(int i=1;i<=n;i++){ 
//找第i行的最小值的列数(可能有多个)
int minValue=a[i][1],mini[m],min_cnt=0;
for(int j=1;j<=m;j++){
if(minValue>a[i][j]){
min_cnt=0;
minValue=a[i][j];
mini[min_cnt++]=j;
}else if(minValue==a[i][j]){
mini[min_cnt++]=j; 
}
} 
//判断第mini列上a[i][mini]是否为最大
bool flag=true;
for(int mcnt=0;mcnt<min_cnt;mcnt++){
bool flag=true;
for(int k=1;k<=n;k++){
if(a[k][mini[mcnt]]>a[i][mini[mcnt]]){
flag=false;
break;
}
} 
if(flag){
cnt++;
cout<<"鞍点:"<<a[i][mini[mcnt]]<<" 位置:x="<<i<<",y="<<mini[mcnt]<<endl;
}
}
}
if(cnt==0){
cout<<"没有鞍点"<<endl;
} 
return 0;
}

 

 


原文地址:https://blog.csdn.net/m0_73801775/article/details/142738336

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!