何为矩阵的鞍点,即一行中最大,这列中最小
下面是封转为函数的源码:
void func(int (*a)[5])
{
int i=0,j=0;
int n=0,m=0;
int k=0;
int flag=1;
for(i=0;i<5;i++)
{
//m记录一行中最大的数的列数
for(j=0;j<5;j++)
{
if(a[i][j]>a[i][m])
m =j;
}
//判断边缘情况,当一行中有两个相同的元素,标记flag=0
for(k=0;k<j;k++)
{
if(a[i][k] ==a[i][m] && k != m)
{
flag=0;
break;
}
}
//当一行中没有相同的两个元素时往下执行
if(flag ==1)
{
//判断这一列中的最小元素
for(k=0;k<i;k++)
{
if(a[k][m]<a[i][m]&& k != i)
{
flag=0;
break;
}
}
}
//当这一列中存在最小的元素时
if(flag ==1)
printf("(%d,%d)\n",i+1,m+1);
}
}