求鞍点问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:35:44
#include<stdio.h>
void main()
{
int a[10][10]={{1,8,4},{3,7,1}},x=2,y=3;
int m,n,i,j,flag=0,f=0;
for(i=0;i<x;i++)
{
m=i;
for(j=0;j<y-1;j++)
{
if(f==0) n=j;
if(a[m][n]<a[i][j+1]) {n=j+1;f2=1;}
}
for(i=0;i<x;i++)
{
if(a[m][n]>a[i][n]) break;
if(i==x-1) flag=1;
}
f=0;
}
if(flag==0) printf("没有鞍点\n");
else if(flag==1) printf("第%d行第%d列的数%d是鞍点\n",m+1,n+1,a[m][n]);

}

哪里有错?
其中 一行中的f2为f,我已经发现了
结果鞍点应该是7,为什么会没有呢?

写得稍微有些难解
我写的 你参考下
#include <stdio.h>

void main()
{
int array[4][4]={{11,1,23,45},{40,56,98,91},{23,21,12,40},{45,67,23,90}};
int i,number=0,sign,j,m,n;
for (i = 0; i <= 3; i++)
{
m = i;
n = 0;
sign = 1;
for(j = 0; j <= 3;j++)
{
if (array[m][n] < array[i][j])
{n = j;}
}
for(j = 0; j <= 3;j++)
{
if(array[m][n] >array[j][n])
sign = 0;
}
if (sign == 1)
{printf("鞍点是 %d\n",array[m][n]);break;}
}
if(i>3)
printf("没有鞍点");
}