| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:帮帮忙,这个程序该怎样修改才能得到想要的结果
只看楼主 加入收藏
nishimywife
Rank: 1
等 级:新手上路
帖 子:13
专家分:6
注 册:2009-11-8
结帖率:50%
收藏
 问题点数:0 回复次数:9 
帮帮忙,这个程序该怎样修改才能得到想要的结果
/ Guess My Number
// The classic number guessing game

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand(time(0)); // seed random number generator

    int theNumber = rand() % 100 + 1; // random number between 1 and 100
    int tries = 0, guess;
   
    cout << "\tWelcome to Guess My Number\n\n";

    do
    {
        cout << "Enter a guess: ";
        cin >> guess;
        ++tries;

        if (guess > theNumber)
            cout << "Too high!\n\n";

        if (guess < theNumber)
            cout << "Too low!\n\n";

    } while (guess != theNumber);

    cout << "\nThat's it! You got it in " << tries << " guesses!\n";

    return 0;
}                  这个程序由玩家猜一个随机数,直到猜出这个数,程序结束,而现在是要求玩家与电脑交换角色,玩家键入一个数,而电脑必须猜出这个数.这个程序该怎样修改呢?望各位达人鼎立相住.谢谢
搜索更多相关主题的帖子: 结果 
2009-11-10 11:05
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <tchar.h>
#include<iostream>
#include<time.h>
using namespace std;
void getnumber(int &number2,int k,int &max,int &min);
int _tmain(int argc, _TCHAR* argv[])
{
    int number,number2,k,max=99,min=0;        
    srand(time(0));    
    while(1)
    {
        cout<<"请输入一个数大于0 小于100的数 电脑好猜"<<endl;
        cin>>number;
        getchar();
        cout<<"电脑猜的数为"<<(number2=rand()%100)<<endl;
        while(1)
        {
            cout<<"电脑猜中了吗 大了输入1 小了输入2 猜中输入3 退出5"<<endl;
            cin>>k;
            getchar();
            if(k==3){cout<<"恭喜电脑猜中"<<endl<<endl;break;}
            if(k==5)return 0;
            getnumber(number2,k,max,min);
            cout<<"电脑猜的数为"<<number2<<endl;
        }
    }
    cin.get();
    return 0;
}

void getnumber(int &number2,int k,int &max,int &min)
{    
    int number3=rand()%100;
    if(k==2)
    {
        while(number2>=number3||number3>=max)number3=rand()%100;
        min=number2;
    }
    if(k==1)
    {
        while(number2<=number3||number3<=min)number3=rand()%100;
        max=number2;
    }
    number2=number3;    
}













[ 本帖最后由 ml232528 于 2009-11-10 14:35 编辑 ]

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2009-11-10 13:32
nishimywife
Rank: 1
等 级:新手上路
帖 子:13
专家分:6
注 册:2009-11-8
收藏
得分:0 
回复 2楼 ml232528
有你回复,真的好高兴,我还可以请你帮忙吗?我想要的是比如说.我键入一个数,比如25,而电脑用随机数猜出25来,就是我随便键入1到100的一个数,电脑猜出这个数,程序结束,告诉我它猜的次数.谢谢你上次的帮忙,如果这次也能帮到,甚是感激.本人真的很菜
2009-11-10 17:25
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
回复 3楼 nishimywife
参考下

程序代码:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
        int count = 0;
        int input;
        cin >> input;
        srand(time(0));
        while(true)
        {
                if(rand()%100+1 == input)
                {
                        count++;
                        break;
                }
                else
                        count++;
        }
        cout << count << '\n';
}


你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-11-10 23:51
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
程序代码:

#include <stdio.h>
#include <tchar.h>
#include<iostream>
#include<time.h>
using namespace std;

void getnumber(int &number2,int k,int &max,int &min,int &count);
int _tmain(int argc, _TCHAR* argv[])
{
    int number,number2,k,max=99,min=0,count=1;        
    srand(time(0));    
    while(1)
    {
        cout<<"请输入一个数大于0 小于100的数 电脑好猜"<<endl;
        cin>>number;
        getchar();
        cout<<"电脑第"<<count<<"次猜的数为"<<(number2=rand()%100)<<endl;
        while(1)
        {
            cout<<"电脑猜中了吗 大了输入1 小了输入2 猜中输入3 退出5"<<endl;
            cin>>k;
            getchar();
            if(k==3){cout<<"恭喜电脑猜中"<<endl<<endl;break;}
            if(k==5)return 0;
            getnumber(number2,k,max,min,count);
            cout<<"电脑第"<<count<<"次猜的数为"<<number2<<endl;
        }
    }
    cin.get();
    return 0;
}

void getnumber(int &number2,int k,int &max,int &min,int &count)
{    
    int number3=rand()%100;
    if(k==2)
    {
        while(number2>=number3||number3>=max)number3=rand()%100;
        min=number2;        
    }
    if(k==1)
    {
        while(number2<=number3||number3<=min)number3=rand()%100;
        max=number2;
    }
    count++;
    number2=number3;    
}









-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2009-11-11 14:41
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
收藏
得分:0 
  copy下来玩玩 哈哈

java群
62635216
欢迎加入
2009-11-11 16:51
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
收藏
得分:0 
发现
这个程序有死循环的危险

java群
62635216
欢迎加入
2009-11-11 16:59
nishimywife
Rank: 1
等 级:新手上路
帖 子:13
专家分:6
注 册:2009-11-8
收藏
得分:0 
回复 4楼 flyingcloude
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void)
{
        int count = 0;
        int input;
        cin >> input;
        srand(time(0));
        while(true)
        {
                if(rand()%100+1 == input)
                {
                        count++;
                        break;
                }
                else
                  continue;// 首先谢谢你的解答,但是好象在屏幕上根本看不到任何东西啊,换句话说就是不起作用,我觉得缺点什么,就是说不上来,               count++;//  但是你的思路提醒了我,在循环里一开始随机数就等于我们键入的哪个数,就break;否则就又回到循环顶部,再次随机,直到随机等于我们键入的哪个数,就恭喜电脑猜中,并记录它猜的次数,然后打应再屏幕上,具体代码我就是写不出来,就你这个好象还差几句,麻烦你把代码,在在谢谢,写写,你就是我的再生父母啊
        }                 
        cout << count << '\n';
2009-11-15 23:36
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
回复 8楼 nishimywife
我不知道你为什么要加个continue

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-11-15 23:53
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
回复 8楼 nishimywife
不是太懂你说的意思

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-11-15 23:53
快速回复:帮帮忙,这个程序该怎样修改才能得到想要的结果
数据加载中...
 
   



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

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