猜数字

我想做一个猜数字的小游戏,范围是1-100,那么首先我们需要出现一个随机数,于是我使用rand函数,定义一个整型其初值为rand()%100+1(因为是1-100,所以需要在取模于100时+1,否则游戏内不会出现这个数)。但在运行的时候我发现了问题,为何每一次随机出来的数都完全一致呢?通过上网搜索,我才知道每一次rand函数运行都会查询是否使用过srand函数,若之前没有调用srand(seed),那么系统会自动给seed赋初始值,即srand(1)。于是我使用了cmath头文件,用当前时间来给随机值赋值。

#include<cmath>
srand((unsigned int)time(NULL));
int num = rand() % 100 + 1;

接下来就要到猜数字环节了,先创建一个变量为玩家输入的数,玩家输入的数如果大于随机数,那么就应该提示“猜测过大”;如果输入的数小于随机数,那么就应该提示“猜测过小”,每次提示过后重新输入数字。这个过程中不应该退出游戏,所以我使用while(1)这个死循环,如果答对了,那么就可以提示玩家“恭喜您猜对了”,并用break退出循环。如此一来,我们的猜数字小游戏就完成了。

#include<iostream>
#include<ctime>
using namespace std;

int main(){

    cout << "请在一到一百的整数中猜数字" << endl;

    srand((unsigned int)time(NULL));

    int num = rand() % 100 + 1;

    int val = 0;

    while (1)
    {
        cin >> val;
        if(val >num)
        {
            cout << "猜测过大" << endl;
        }
        else if(val < num)
        {
            cout << "猜测过小" << endl;
        }
        else
        {
            cout << "恭喜您猜对了" << endl;
            break;
        }
    }




    system("pause");

    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 14:00
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务