| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1600 人关注过本帖
标题:[求助]进来关注一下这个小游戏程序,找出问题~
取消只看楼主 加入收藏
oggplay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-1
收藏
 问题点数:0 回复次数:6 
[求助]进来关注一下这个小游戏程序,找出问题~

功能实现:任意给定5个数字,其中必定存在3个数字已经有序(或者升序,或者降序),找出这5个数字中最长的升序或降序序列。
例如:1,7,5,3,9。则{1,7,9},{1,5,9},{1,3,9}都是最长的升序序列;
而{7,5,3}是最长的降序序列。
再如:1,3,2,5,7。最长的升序序列为{1,3,5,7}和{1,2,5,7}。

自动生成各种可能的序列,对于5个数字所有可能的序列为:
{0,1,2,3}、{0,1,2,4}、{0,1,3,4}、{0,2,3,4}、{1,2,3,4}
{0,1,2}、{0,1,3}、{0,2,3}、{1,2,3}
{0,1,4}、{0,2,4}、{1,2,4}
{1,3,4}
{2,3,4}、{0,3,4}
考察各种可能的序列是否升序或是降序,若是则打印;




《《有什么错误纠正一下,调试其正确,能不能把BOOL函数用语句什么的替代了啊 ,我们没学过这个函数。
using namespace std; 能不能删掉啊?大家多帮帮忙——把它搞正确了,感激 不尽》》



#include <iostream>
using namespace std;

//判断序列是不是升序排列
bool is_up_ordered(int a, int b, int c, int d = -1, int e = -1){
if (e == -1)
return (a<b && b<c && c<d && d<e);
else if (d == -1)
return (a<b && b<c && c<d);
else
return (a<b && b<c);
}

//判断序列是不是降序排列
bool is_down_ordered(int a, int b, int c, int d = -1, int e = -1){
if (e == -1)
return (a>b && b>c && c>d && d>e);
else if (d == -1)
return (a>b && b>c && c>d);
else
return (a>b && b>c);
}

int main(){
int a[5];
int mark = 0;
//从终端输入5个数字
cin >> a[0] >> a[1] >> a[2] >> a[3] >> a[4];

//下面是找出升序序列
cout << "升序排序:" << "\n";

if (is_up_ordered(a[0], a[1], a[2], a[3], a[4])){
cout << a[0] << a[1] << a[2] << a[3] << a[4] << "\n";
}
else {
for (int i = 0; i < 5; ++i)
for (int j = i+1; j < 5; ++j)
for (int k = j+1;k < 5;++k)
for (int l = k+1;l < 5;++l){
if (is_up_ordered(a[i],a[j],a[k],a[l])){
cout << a[i] << a[j] << a[k] << a[l] << "\n";
mark = 1;
}
}
}
if (mark != 1){
for (int i = 0;i < 5;++i)
for (int j = i+1;j < 5;++j)
for (int k = j+1;k < 5;++k){
if (is_up_ordered(a[i],a[j],a[k]))
cout << a[i] << a[j] << a[k] << "\n";
}
}

mark = 0;
//下面是找出降序序列
cout << "降序排序:" << "\n";

if (is_down_ordered(a[0], a[1], a[2], a[3], a[4]){
cout << a[0] << a[1] << a[2] << a[3] << a[4] << "\n";
}
else {
for (int i = 0; i < 5; ++i)
for (int j = i+1; j < 5; ++j)
for (int k = j+1;k < 5;++k)
for (int l = k+1;l < 5;++l){
if (is_down_ordered(a[i],a[j],a[k],a[l])){
cout << a[i] << a[j] << a[k] << a[l] << "\n";
mark = 1;
}
}
}
if (mark != 1){
for (int i = 0;i < 5;++i)
for (int j = i+1;j < 5;++j)
for (int k = j+1;k < 5;++k){
if (is_down_ordered(a[i],a[j],a[k]))
cout << a[i] << a[j] << a[k] << "\n";
}
}
system("pause");
}

[此贴子已经被作者于2007-7-1 14:33:36编辑过]

搜索更多相关主题的帖子: 序列 小游戏 数字 
2007-07-01 10:36
oggplay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-1
收藏
得分:0 
回复:(oggplay)XDJM看一下这个小游戏程序,有什么错...

小弟我条件有限,只是也 有限,而且现在没有VC++6.0的软件
高手们帮忙看下吧

2007-07-01 12:20
oggplay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-1
收藏
得分:0 
版主来指点一下啊~
2007-07-01 14:34
oggplay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-1
收藏
得分:0 
回复:(aipb2007)http://bbs.bc-cn.net/dispbbs.asp...

问题 是总 有 一处错误/找不到

版主 的 写的那个第二段 是实现的 升序 ?还是降序?还是什么
能不 能说明白点,我在线等

2007-07-01 15:24
oggplay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-1
收藏
得分:0 
回复:(aipb2007)我写那个是有序!你可以把那个函数...
晕了,版主帮我写出来吧,我听你的 不是 很懂,3.4合一?
特别是 降序, 我非常搞不定 。你把 整个你的方法的 写出来,我来 研究一下
特别 是 降序,我向 看看你写的套路
谢了,我在线等~
2007-07-01 16:30
oggplay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-1
收藏
得分:0 
回复:(aipb2007)[CODE]#include u...
谢谢斑竹了,你 这个比我那个简单 太 多啊,呵呵,不可思议啊
那个bool函数可以用普通语句替代吗,我们设计要求里不 能 用BOOL
2007-07-01 17:13
oggplay
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-1
收藏
得分:0 

如果把BOOL换成VOID应该 怎么 实现

2007-07-01 18:07
快速回复:[求助]进来关注一下这个小游戏程序,找出问题~
数据加载中...
 
   



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

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