#include<stdio.h>
#define n 4
//馬鞍點是第I行值最小第J列值最大
void maxmin(int a[n][n])
{
int i,j ,flag;
int max[n],min[n];
for(i=0;i<n;i++)
{ min[i]=a[i][0];//將數組每行的第一個元素賦值給min[]數組
for(j=1;j<n;j++)
{
if(a[i][j]<min[i])
min[i]=a[i][j];
}
}
for(j=0;j<n;j++)
{
max[j]=a[0][j];
for(i=1;i<n;i++)
{
if(max[j]<a[i][j])
max[j]=a[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(max[i]==min[j])
{
printf("馬鞍點是%d %d =%d",i,j,a[i][j]);
flag=1;
}
}
if(!flag)
{
printf("無馬鞍點");
}
}
int main()
{
int i,j;
int a[n][n]={{9,7,6,8},{20,26,22,25},{28,36,25,30},{12,4,2,6}};
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf(" %d ",a[i][j]);
}
printf("\n");
}
maxmin(a);
}