不知道哪里错了,程序运行结果总是不符合预期,希望得到大佬们的指点
/*题目:找出一个二维数组中的鞍点,即该位置上的的元素在该行上最大,在该列上最小(也可能没有鞍点)。*/int main(void)
{
void Find_saddle_point(float a[][column]);
float array[row][column];
int i,j;
cout<<"请输入"<<row<<"行"<<column<<"列数组的全部元素:"<<endl;
for(i=0;i<row;i++)
for(j=0;j<column;j++)
cin>>array[i][j];
Find_saddle_point(array);
return 0;
}
void Find_saddle_point(float a[][column])
{
int i,j,m,n,k;
bool flag=true;
for(i=0;i<row;i++)
{
m=i;
n=i;
for(j=0;j<column;j++)//找出i行上最大的元素,将其行和列记为m,n
if(a[i][j]>a[m][n])
{
m=i;
n=j;
}
for(k=0;k<row;k++)//判断在m行上最大的元素是否在其所在列上最小
if(a[k][n]<a[m][n])
{
flag=false;
break;
}
}
if(flag==true) cout<<"此二维数组的鞍点在"<<m+1<<"行"<<n+1<<"列,"<<"鞍点的值为:"<<a[m][n];
else cout<<"此二维数组无鞍点!";
}
//例如输入1 2 3 4 5 6 7 8 9,应该输出:此二维数组的鞍点在1行3列,鞍点的值为:3。而实际情况却如下图所示: