源码
#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;
}
分析
-
整体功能概述
-
这是一个简单的猜数字游戏程序。程序首先生成一个0到99之间的随机数,然后提示用户猜这个随机数。用户输入一个数字后,程序会根据用户输入的数字与随机数的大小关系给出提示(“太大了!”“太小了!”或者“正确!”),如果用户猜对了,程序结束。
-
-
包含的头文件和命名空间
-
#include <cstdlib>
:这个头文件包含了一些通用的函数,如rand
和srand
函数,用于生成随机数相关的操作。 -
#include <ctime>
:用于获取当前时间,在这个程序中主要是为了给随机数生成器提供一个随时间变化的种子,使得每次运行程序生成的随机数序列不同。 -
#include <iostream>
:用于实现控制台的输入和输出操作,例如cout
用于输出游戏提示信息,cin
用于获取用户输入的数字。 -
using namespace std;
:使用标准命名空间,这样就可以直接使用cout
、cin
、srand
、rand
等标准库中的标识符,而不需要加上std::
前缀。
-
-
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
,输出“太小了!”。
-
-
-
-
-
代码的优点
-
逻辑清晰:代码结构简单,猜数字的逻辑通过
while
循环和if - else if
语句清晰地实现,容易理解。 -
基本功能完整:实现了一个简单猜数字游戏的基本功能,包括随机数生成、用户输入获取和结果判断。
-