马鞍点的有关问题
马鞍点的问题
马鞍点就是所求行最大,列最小的元素,谢了代码,不找到哪里错了,编译通过了,但是运行有问题,也没法调试!
#include<iostream>
using namespace std;
#include<iomanip>
const int max_n=50,max_m=50;
void showArry(int a[][max_m],int n,int m);
void maandian(int a[][max_m],int n,int m);
void main()
{
int n,m;
int rect[max_n][max_m];
cout<<"请输入矩阵的行数和列数\n";
cin>>n>>m;
cout<<"请输入矩阵\n";
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>rect[i][j];
}
}
//showArry(rect,n,m);
maandian(rect,n,m);
}
void showArry(int a[][max_m],int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<setw(5)<<a[i][j];
}
cout<<endl;
}
}
int maandain(int a[][max_m],int n,int m)
{
int maxx;
int i,j,l;
for( i=0;i<n;i++)
{
maxx=0;
for( j=0;j<m;j++)
{
if(a[i][j]>a[i][maxx])
maxx=j;
}
for(l=0;l<n;l++)
{
if(a[l][maxx]<a[l][maxx])
break;
}
if(l==n)
{
cout<<"马鞍点的行为"<<i<<"列为"<<maxx<<endl;
return ;
}
}
cout<<"没有马鞍点";
}
------解决方案--------------------
分解一下。
1)查找一行的最大元,调试到通过
2)查找一列的最小元,调试到通过
3)查找鞍点,调试到通过。
马鞍点就是所求行最大,列最小的元素,谢了代码,不找到哪里错了,编译通过了,但是运行有问题,也没法调试!
#include<iostream>
using namespace std;
#include<iomanip>
const int max_n=50,max_m=50;
void showArry(int a[][max_m],int n,int m);
void maandian(int a[][max_m],int n,int m);
void main()
{
int n,m;
int rect[max_n][max_m];
cout<<"请输入矩阵的行数和列数\n";
cin>>n>>m;
cout<<"请输入矩阵\n";
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>rect[i][j];
}
}
//showArry(rect,n,m);
maandian(rect,n,m);
}
void showArry(int a[][max_m],int n,int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<setw(5)<<a[i][j];
}
cout<<endl;
}
}
int maandain(int a[][max_m],int n,int m)
{
int maxx;
int i,j,l;
for( i=0;i<n;i++)
{
maxx=0;
for( j=0;j<m;j++)
{
if(a[i][j]>a[i][maxx])
maxx=j;
}
for(l=0;l<n;l++)
{
if(a[l][maxx]<a[l][maxx])
break;
}
if(l==n)
{
cout<<"马鞍点的行为"<<i<<"列为"<<maxx<<endl;
return ;
}
}
cout<<"没有马鞍点";
}
------解决方案--------------------
分解一下。
1)查找一行的最大元,调试到通过
2)查找一列的最小元,调试到通过
3)查找鞍点,调试到通过。