上节说到一个猜数字的游戏,我们首先分析下这个小游戏的流程
1.首先系统产生一个需要猜的数字N(1<N<100)
2.输入一个数字,系统给出是大了还是小了,进一步判断数字的范围
3.重复输入数字,直到猜中数字
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43#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
2
3
4
5
6
7
8
9
10
11请输入数字(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次
复制代码
1
2
3
4for(int i = 0; i< 10 ;i++) { cout<< rand()%100<< " "; }
这个结果永远都是
复制代码
17 49 73 58 30 72 44 78 23 9
这个时候,需要引入一个随机的种子,这个种子可以是任意值,通常采用时间,我们修改一下代码,让每次产生的随机值都不同
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61#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)内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复