大家看看错在哪儿了啊
这是一个求鞍点的题,即在一个数组里,如果某一位置的数是所在行的最大值,同时又是所在列的最小值就称该点为鞍点;我写的这个程序有点问题,可是怎么也看不出错在了哪里,请高手指点,谢谢#include <iostream>
using namespace std;
int main()
{
int i,j,a,b, s[100][100],max,min,m,n,num=0,c,d;
cout<<"请输入一个二维数组"<<endl;
cout<<"请输入该二维数组的行数:";
cin>>i;
cout<<endl;
cout<<"请输入该二维数组的列数:";
cin>>j;
cout<<endl;
cout<<"请按行输入数据:"<<endl;
for(a=0;a<i;a++)
{
cout<<"第"<<a+1<<"行:";
for(b=0;b<j;b++)
cin>>s[a][b];
}
for(a=0;a<i;a++)
{
max=s[a][0];
for(b=0;b<j;b++)
{
if(max<s[a][b])
max=s[a][b];
}
for(d=0;d<j;d++)
{
if(s[a][d]==max)
{
m=a;n=d;
for(c=0;c<i;c++)
min=(max<s[c][d])?max:s[c][d];
if(min==max)
{cout<<"第"<<m+1<<"行 第"<<n+1<<"列是鞍点"<<endl;num++;}
}
}
}
if (num==0)
cout<<"该数组没有鞍点"<<endl;
return 0;
}
[此贴子已经被作者于2006-4-7 8:08:29编辑过]