求二维数组的鞍点
找出一个二维数组的鞍点,即在该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。请问以下程序问题出在哪里?
#include<stdio.h>
void main()
{int a[3][3],i,j,max,min,k;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
max=a[i][0];
for(j=0;j<3;j++)
{
if(max<a[i][j])
{
max=a[i][j];
min=a[i][j];
k=j;
}
else k=0; /*加了这一步,可还是不行?*/
}
for(i=0;i<3;i++)
{
if(min>a[i][k])
min=a[i][k];
}
if(max==min)
printf("The answer is:%d\n",min);
}
getch();
}
当我如入“1 2 3 4 5 6 7 8 9”时结果是3;
即输入这些有规律的从小到的数时可以得到正确结果;但当我接着输入“1 6 2 3 5 4 2 3 1”想得到结果3,这时候执行没得到任何结果,为什么?
[ 本帖最后由 zhengzhihui 于 2009-8-11 16:30 编辑 ]