我是靠谱客的博主 精明金鱼,最近开发中收集的这篇文章主要介绍C++入门教程(4)猜数字游戏(rand),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上节说到一个猜数字的游戏,我们首先分析下这个小游戏的流程

1.首先系统产生一个需要猜的数字N(1<N<100)

2.输入一个数字,系统给出是大了还是小了,进一步判断数字的范围

3.重复输入数字,直到猜中数字

#include <iostream>
using namespace std;

int main(int argc, const char * argv[]) {
    // insert code here...
    //std::cout << "Hello, World!n";
    
    //rand() 可以产生一个随机数 %取余 即可得到一个0-100的随机数
    int number = rand() %100 ;
    
    //input 用于获取玩家输入的数字
    int input = 0;
    //maxNum 用于保存当前能判断的最大值
    int maxNum = 100;
    //minNum 用于保存当前能判断的最小值
    int minNum = 1;
    
    cout << "请输入数字(1-100):";
    while(input != number)
    {
        cin >> input;
        if(input > number)
        {
            if (input < maxNum) {
                maxNum = input;
            }
            cout << "大了,请输入数字("<< minNum << "-"<< maxNum << ") n" ;
        }
        else if(input < number)
        {
            if (input > minNum) {
                minNum = input;
            }
            cout << "小了,请输入数字("<< minNum << "-"<< maxNum << ") n" ;
        }
        else{
            cout << "恭喜你,猜对了,数字是:" << number <<endl;
        }
    }
    
    return 0;
}

        运行,不断根据提示最终我们得到了最终的答案,7

请输入数字(1-100):50
大了,请输入数字(1-50) 
25
大了,请输入数字(1-25) 
12
大了,请输入数字(1-12) 
6
小了,请输入数字(6-12) 
7
恭喜你,猜对了,数字是:7
Program ended with exit code: 0

        真好玩,再玩一次,等一下。。。嗯? 怎么。还是7

        不是说好了随机产生一个值么?!为什么一直是7?

        其实rand()是伪随机,每次产生包括下一次产生的数都是固定的,我们连续输出10次

    for(int i = 0; i< 10 ;i++)
    {
        cout<< rand()%100<< "  ";
    }

        这个结果永远都是

7  49  73  58  30  72  44  78  23  9

这个时候,需要引入一个随机的种子,这个种子可以是任意值,通常采用时间,我们修改一下代码,让每次产生的随机值都不同


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

int main(int argc, const char * argv[]) {
    // insert code here...
    //std::cout << "Hello, World!n";
    
    //如果随机种子是固定的值 则每次运行的结果还是一样的
    //srand(12);
    
    
    //随机种子为当前时间
    srand(time(NULL));

//    //测试随机产生10个随机数
//    for(int i = 0; i< 10 ;i++)
//    {
//        cout<< rand()%100<< "  ";
//    }
    
    //rand() 可以产生一个随机数 %取余 即可得到一个0-100的随机数
    int number = rand() %100 ;
    
    //猜之前查看是否每次都是随机的
    //cout << number ;
    
    //input 用于获取玩家输入的数字
    int input = 0;
    //maxNum 用于保存当前能判断的最大值
    int maxNum = 100;
    //minNum 用于保存当前能判断的最小值
    int minNum = 1;
    
    cout << "请输入数字(1-100):";
    while(input != number)
    {
        cin >> input;
        if(input > number)
        {
            if (input < maxNum) {
                maxNum = input;
            }
            cout << "大了,请输入数字("<< minNum << "-"<< maxNum << ") n" ;
        }
        else if(input < number)
        {
            if (input > minNum) {
                minNum = input;
            }
            cout << "小了,请输入数字("<< minNum << "-"<< maxNum << ") n" ;
        }
        else{
            cout << "恭喜你,猜对了,数字是:" << number <<endl;
        }
    }
    
    return 0;
}

最后

以上就是精明金鱼为你收集整理的C++入门教程(4)猜数字游戏(rand)的全部内容,希望文章能够帮你解决C++入门教程(4)猜数字游戏(rand)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部