概述
上节说到一个猜数字的游戏,我们首先分析下这个小游戏的流程
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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复