输入一个二维数组,找出这个数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。
话不多说,直接上代码:
#include<iostream>
#include<iomanip>
#include<algorithm>
using namespace std;
int main()
{
int a[4][4]; //下面这一部分是向数组中输入数据
int i=1,j=1;
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
}
//************************************************************
cout<<"你输入的数组为:"<<endl; //这一部分是展示你输入的二维数组
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
cout<<setw(3)<<a[i][j];
}
cout<<endl;
}
//************************************************************
cout<<"鞍点为:"; //这一部分是通过if条件有选择的输出鞍点
for(int k=1;k<=3;k++) //行上该元素最大的条件为:a[i][j]>a[i][k]
{ //列上该元素最小的条件为:a[i][j]<a[k][j]
for(i=1;i<=3;i++) //通过for循环实现即可。
{
for(j=1;j<=3;j++)
{
if(a[i][j]>a[i][k] && a[i][j]<a[k][j])
cout<<a[i][j];
}
}
}
cout<<endl;
system("pause");
return 0;
}