方法一
#include "stdio.h"
#define H 3
#define S 3
int main()
{
int a[H][S];
int h,s,heng,shu;
int temp,flag1,flag2,flag3=0;
for(s=0;s<H;s++)
for(h=0;h<S;h++)
scanf("%d",&a[h][s]);
for(h=0;h<H;h++)
for(s=0;s<S;s++)
{
flag1=0;
flag2=0;
temp=a[h][s];
for(heng=0;heng<H;heng++)
if(temp<a[heng][s])
{
flag1=1;
break;
}
for(shu=0;shu<S;shu++)
if(temp>a[h][shu])
{
flag2=1;
break;
}
if(flag1==0 && flag2==0)
{
flag3=1;
printf("%d,第%d列,第%d行\n",temp,h+1,s+1);
}
}
if(flag3==0)
printf("无鞍点数");
return 0;
}
方法二
<pre name="code" class="cpp">#include "stdio.h"
#define N 3
int main()
{
int i,j,k;
int flag=1;
int row,col;
int a[N][N];
for(j=0;j<N;j++)
for(i=0;i<N;i++)
scanf("%d",&a[i][j]);
for(j=0;j<N;j++)
{
for(i=0;i<N;i++)
printf("%d ",a[i][j]);
putchar('\n');
}
//求鞍点数
for (j=0;j<N && flag==1;j++)
{
row=0;
col=j;
for(i=0;i<N;i++)
{
if(a[row][col]<a[i][j])
{
row=i;
col=j;
}
}
for(k=0;k<N;k++)
{
if(a[row][col]<=a[row][k])
flag=0;
else
{
flag=1;
break;
}
}
if(flag==0)
printf("\n鞍点数是%d第%d行 第%d列",a[row][col],row+1,col+1);
}
if(flag==1)
printf("无鞍点");
return 0;
}