标题:大家看看错在哪儿了啊
只看楼主
harevine
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-5
 问题点数:0 回复次数:15 
大家看看错在哪儿了啊
这是一个求鞍点的题,即在一个数组里,如果某一位置的数是所在行的最大值,同时又是所在列的最小值就称该点为鞍点;我写的这个程序有点问题,可是怎么也看不出错在了哪里,请高手指点,谢谢
#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编辑过]

搜索更多相关主题的帖子: 二维 include 最大值 
2006-04-06 20:03
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
得分:0 
如果某一位置的数是所在行的最大值,同时又是所在行的最小值.

什么意思??

那不是只有一行的数都相等,才是安点???/

学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2006-04-06 21:25
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
得分:0 
莫名其妙

学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2006-04-06 21:25
badly1984
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-9
得分:0 
以下是引用layabout在2006-4-6 21:25:00的发言:
如果某一位置的数是所在行的最大值,同时又是所在行的最小值.

什么意思??

那不是只有一行的数都相等,才是安点???/

而且這一行每一個位置都是鞍點....................— —

2006-04-06 21:27
jj456852
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-3-14
得分:0 
楼主是想说:
如果某一位置的数是所在行的最大值,同时又是所在的最小值吧.
2006-04-07 08:01
harevine
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-5
得分:0 

不好意思,打错了,是所在行的最大值,同时又是所在的最小值

2006-04-07 08:08
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 

由于是在外面上的网, 没有编译器调试,所以错误再所难免。
提供个人思路,请多多指教,都是新手,才学不久!


#include<iostream>
#include<cstring>
#include<conio.h>
using namespace std;
int main()
{

int i,j,a,b, s[100][100],max,min,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=1;b<j;b++)
{
if(max<s[a][b])
max=s[a][b];
}
for(b=1;b<j;b++)
{
if(s[a][b]==max)
{ d=b; break; }
}
min = max;
for(c=0;c<i;c++)
{
if(min>s[c][d]) min=s[c][d];
}
if(max==min){cout<<"第"<<c+1<<"行 第"<<d+1<<"列是鞍点"<<endl;num++;}
}

if (!num) cout<<"该数组没有鞍点"<<endl;

getch();
return 0;
}


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-04-07 10:37
harevine
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-4-5
得分:0 

好像有问题,运行结果出现问题了

2006-04-07 11:02
skyfire
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-5
得分:0 

#include <iostream>
using namespace std;
int main()
{
int i,j,a,b, s[3][3],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)
{
int temp; /*找出行最大值对应的列中的最小值赋给temp*/
for(c=0;c<i-1;c++)
{
if(s[c][d]<s[c+1][d])
temp=s[c][d];
else temp=s[c+1][d];
}

if(max==temp)
{
m=a;n=d;
cout<<"第"<<m+1<<"行 第"<<n+1<<"列是鞍点"<<endl;
num++;
}

}
}
}
if (num==0)
cout<<"该数组没有鞍点"<<endl;
return 0;
}


楼主,这是我给你的源程序


广结天下好友,共同努力进步!
2006-04-07 12:11
skyfire
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-5
得分:0 
七楼的程序运行结果不对呀

广结天下好友,共同努力进步!
2006-04-07 12:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-55622-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090992 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved