首页 > 代码库 > 矩阵的马鞍点

矩阵的马鞍点

  

#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);
}

矩阵的马鞍点