#include "stdio.h"
#define N 3
main()
{int i,j,s,min,max,g,t=0;
int a[N][N];
printf("请输入数组a[%d][%d]:",N,N);
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<N;i++)
{ g=0;
max=min=a[i][0];
for(j=0;j<N;j++)
{if(max<a[i][j])
{max=a[i][j];
g=j;} //可以用数组 4 1 7 5 6 8 2 3 9验证,应该是笔误
}
min=a[i][g];
for(s=0;s<N;s++)
{ if(min>a[s][g])
min=a[s][g];
}
if(max==min)
{printf("鞍点:a[%d][%d]=%d\n",i,g,max);
t++;
}
}
if(t==0)
printf("该数组没有鞍点\n");
}
想法很不错
但是仍然没有考虑当数组中出现相等数的时候
比如;
1 2 2
5 6 8
2 3 9,
这个数组应该算是没有鞍点吧,但是会输出结果的。
[
本帖最后由 m456m654 于 2009-10-15 12:03 编辑 ]