找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 599|回复: 9

大家看看错在哪儿了啊

[复制链接]
发表于 2009-11-2 06:23:58 | 显示全部楼层 |阅读模式 IP:江苏扬州
这是一个求鞍点的题,即在一个数组里,如果某一位置的数是所在行的最大值,同时又是所在列的最小值就称该点为鞍点;我写的这个程序有点问题,可是怎么也看不出错在了哪里,请高手指点,谢谢
#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;
}
发表于 2009-11-2 06:24:01 | 显示全部楼层 IP:江苏扬州
如果某一位置的数是所在行的最大值,同时又是所在行的最小值.

什么意思??

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

使用道具 举报

发表于 2009-11-2 06:24:03 | 显示全部楼层 IP:江苏扬州
莫名其妙
回复

使用道具 举报

发表于 2009-11-2 06:24:07 | 显示全部楼层 IP:江苏扬州
以下是引用layabout在2006-4-6 21:25:00的发言:
如果某一位置的数是所在行的最大值,同时又是所在行的最小值.

什么意思??

那不是只有一行的数都相等,才是安点???/
而且這一行每一個位置都是鞍點....................— —
回复

使用道具 举报

发表于 2009-11-2 06:24:11 | 显示全部楼层 IP:江苏扬州
楼主是想说:
如果某一位置的数是所在行的最大值,同时又是所在列的最小值吧.
回复

使用道具 举报

发表于 2009-11-2 06:24:16 | 显示全部楼层 IP:江苏扬州
不好意思,打错了,是所在行的最大值,同时又是所在列的最小值
回复

使用道具 举报

发表于 2009-11-2 06:24:24 | 显示全部楼层 IP:江苏扬州
由于是在外面上的网, 没有编译器调试,所以错误再所难免。
提供个人思路,请多多指教,都是新手,才学不久!


#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;
}
回复

使用道具 举报

发表于 2009-11-2 06:24:31 | 显示全部楼层 IP:江苏扬州
好像有问题,运行结果出现问题了
回复

使用道具 举报

发表于 2009-11-2 06:24:36 | 显示全部楼层 IP:江苏扬州
#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;
}

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

使用道具 举报

发表于 2009-11-2 06:24:42 | 显示全部楼层 IP:江苏扬州
七楼的程序运行结果不对呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 03:25 , Processed in 0.119803 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表