我写的求马鞍点的C++程序,不知道哪里出错

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:06:04
#include<iostream.h>
void main()
{
const int row=5,col=5;
int array[row][col];
int i,j,min_row=0,min_col=0,max,min,m,n;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cin>>array[i][j];

}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cout<<array[i][j]<<" ";
cout<<endl;

}

for(m=0;m<5;m++)
{ min=array[m][0];
min_row=m;
min_col=0;
for(n=0;n<5;n++)
{
if(min>array[m][n])
{min=array[m][n];
min_row=m;
min_col=n;}
}
max=array[m][min_col];
for(m=0;m<5;m++)
{
if(max<array[m][min_col])
{ max=array[m][min_col];
}
}
if(min==max)
cout<<"马鞍点是"<<max<<endl;
else
cout<<"no"<<endl;

}

}

问题在最后一个for循环,for(m=0;m<5;m++);,你这里的m和大循环里的m混淆了,破坏了大循环的执行,把这里的m改成其他变量即可,如r(当然开头要定义r的)等。
这样改了就可以了,我通过了测试

#include <iostream.h>
void main()
{
const int row=5,col=5;
int array[row][col];
int i,j,min_row=0,min_col=0,max,min,m,n;
int r; //这里定义r

for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cin>>array[i][j];

}

for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
cout<<array[i][j]<<" ";
cout<<endl;

}

for(m=0;m<5;m++)
{
min=array[m][0];
min_row=m;
min_col=0;
for(n=0;n<5;n++)
{
if(min>array[m][n])
{
min=array[m][n];
min_row=m;
min_col=n;
}
}

max=array[m][min_col];

for(r=0;r<5;r++)