#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
struct sl
{
int num;
int p;
int q;
};
int t=0;
srand(unsigned (time(NULL)));
int arrary[5][5];
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
arrary[i][j]=rand()%11;
cout<<"隨機生成的5*5的數列為"<<endl;
cout<<endl;
for(i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
cout<<arrary[i][j]<<"\t";
if(j==4)
{
cout<<endl;
cout<<endl;
}
}
}
//取每壹行最大數為big,每壹列最小數為small。
sl big[5];
sl small[5];
for(i=0;i<5;i++)
{
big[i].num=0;
small[i].num=11;
}
for(i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if(big[i].num<arrary[i][j])
{
big[i].num=arrary[i][j];
big[i].p=i+1;
big[i].q=j+1;
}
if(small[i].num>arrary[j][i])
{
small[i].num=arrary[j][i];
small[i].p=j+1;
small[i].q=i+1;
}
}
}
int s;
for(i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
if((small[i].p==big[j].p)&&(small[i].q==big[j].q))
cout<<"第"<<small[i].p<<"行"<<"\t"<<"第"<<small[i].q<<"列"<<endl;
else
s=1;
}
}
if(s)
cout<<"不存在鞍點!"<<endl;
cout<<endl;
cout<<"每行最大值"<<"\t"<<"所在行數"<<"\t"<<"所在列數"<<endl;
for(i=0;i<5;i++)
{
cout<<big[i].num<<"\t\t"<<big[i].p<<"\t\t"<<big[i].q;
cout<<endl;
}
cout<<"每列最小值"<<"\t"<<"所在行數"<<"\t"<<"所在列數"<<endl;
for(i=0;i<5;i++)
{
cout<<small[i].num<<"\t\t"<<small[i].p<<"\t\t"<<small[i].q;
cout<<endl;
}
return 0;
}