C++猜数(人)

源码

#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
 
int main() 
{
    srand(static_cast<unsigned int>(time(0))); // 设置随机数种子 
    int num = rand() % 100; // 生成0到99之间的随机数 
    cout << "猜数字游戏:猜一个0到99之间的整数。" << endl;
 
    while (true)
    {
        int i;
        cout << "请输入数...";
        cin >> i;
        if (i == num)
        {
            cout << "正确!" << endl;
            break; // 使用break语句退出循环 
        }
        else if (i > num)
        {
            cout << "太大了!" << endl;
        }
        else if (i < num)
        {
            cout << "太小了!" << endl;
        }
    }
 
    return 0;
}

分析

  1. 整体功能概述

    • 这是一个简单的猜数字游戏程序。程序首先生成一个0到99之间的随机数,然后提示用户猜这个随机数。用户输入一个数字后,程序会根据用户输入的数字与随机数的大小关系给出提示(“太大了!”“太小了!”或者“正确!”),如果用户猜对了,程序结束。

  2. 包含的头文件和命名空间

    • #include <cstdlib>:这个头文件包含了一些通用的函数,如randsrand函数,用于生成随机数相关的操作。

    • #include <ctime>:用于获取当前时间,在这个程序中主要是为了给随机数生成器提供一个随时间变化的种子,使得每次运行程序生成的随机数序列不同。

    • #include <iostream>:用于实现控制台的输入和输出操作,例如cout用于输出游戏提示信息,cin用于获取用户输入的数字。

    • using namespace std;:使用标准命名空间,这样就可以直接使用coutcinsrandrand等标准库中的标识符,而不需要加上std::前缀。

  3. main函数内部逻辑

    • 随机数生成部分:

      • 首先使用srand(static_cast<unsigned int>(time(0)));设置随机数种子。time(0)函数返回从1970年1月1日00:00:00 UTC到当前时间的秒数,将其转换为unsigned int类型后作为srand函数的参数。srand函数用于初始化随机数生成器,这样每次运行程序时,由于时间不同,rand函数生成的随机数序列也会不同。

      • 然后使用int num = rand()%100;生成一个0到99之间的随机数。rand函数会根据之前设置的种子生成一个随机数,对100取模后得到的结果就在0到99之间。

    • 猜数字循环部分:

      • 使用while (true)创建一个无限循环,在循环内部:

        • 首先提示用户“请输入数...”,然后使用cin >> i;获取用户输入的数字i

        • 接着通过if - else if语句判断用户输入的数字与随机数num的关系:

          • 如果i == num,说明用户猜对了,输出“正确!”并使用break语句退出循环。

          • 如果i > num,输出“太大了!”。

          • 如果i < num,输出“太小了!”。

  4. 代码的优点

    • 逻辑清晰:代码结构简单,猜数字的逻辑通过while循环和if - else if语句清晰地实现,容易理解。

    • 基本功能完整:实现了一个简单猜数字游戏的基本功能,包括随机数生成、用户输入获取和结果判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值