上机三:多维数组的应用
内容要求
在二维数组中寻找自定义“鞍点”,即每行最小值且每列最大值,并输出;
若不存在则输出“该二维数组没有鞍点”
代码
#include<iostream>//3:多维数组的应用
using namespace std;
int a[10][10];
void in(int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
}
}
int find(int n)//鞍点:每行最小值且每列最大值(自定义鞍点)
{
int i,j,flag,flag1,k,www=1;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
flag=0;
flag1=0;
for(k=0;k<n;k++)
{
if(a[i][j]>a[i][k])//在当前行中是否为最小,不是最小flag=1;
flag=1;
}
for(k=0;k<n;k++)
{
if(a[i][j]<a[k][j])//当前列是否为最大
flag1=1;
}
if(!flag&&!flag1)//flag=flag1=0
{
cout<<i+1<<"行"<<j+1<<"列"<<a[i][j]<<endl;
www=0;
return 1;
}
}
}
if(www==1)//没有鞍点
{
return 0;
}
}
int main()
{
int n;
cout<<"建立n*n的二维数组,请输入n值(1<n<10):";cin>>n;
cout<<endl;
cout<<"输入数组元素:"<<endl;
in(n);
int m=find(n);
if(m==0)
cout<<"该二维数组没有鞍点"<<endl;
}
自述
这篇含金量不高,就不要赞了23333