我是靠谱客的博主 香蕉香菇,最近开发中收集的这篇文章主要介绍【菜鸟C++学习杂记】随机数以及猜数字游戏,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        笔者之前主要开发语言为C#,随机数实现较为容易,一个Random函数即可。在C++猜数字游戏中,由于C++没有写好的Random函数,想要实现随机数则需要使用rand()以及srand()函数。

        1、一开始时只加了rand(),但是测试几次发现,从零到一百随机的结果一直为42,不禁陷入了沉思,遂查阅资料得出rand() 的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的,产生的是伪随机数字,每次执行时是相同的; 若想要实现真随机,需要用函数 srand() 初始化它。

        rand()使用方法为int rand(void)

要取得 [a,b) 的随机整数,使用 (rand() % (b-a))+ a;

要取得 [a,b] 的随机整数,使用 (rand() % (b-a+1))+ a;

要取得 (a,b] 的随机整数,使用 (rand() % (b-a))+ a + 1;

通用公式: a + rand() % n;其中的 a 是起始值,n 是整数的范围。

要取得 a 到 b 之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。

要取得 0~1 之间的浮点数,可以使用 rand() / double(RAND_MAX)。

        2、srand()为初始化随机数发生器,其用来设置产生随机数时的随机数种子,随机数种子seed若每次设置为相同时,则随机数也相同,由于每次程序运行的时间不同,所以可以引入time来实现不同的种子。rand()会根据srand()的种子值返回一个随机数。

        srand()使用方法为void srand(unsigned int seed)

        3、明白随机数产生之后,即可完成猜数字的游戏。

#include<iostream>
#include <cstdlib>//rand
#include <ctime>//time
using namespace std;
int main() {
	srand((int)time(0));
	int num = rand() % 100 + 1;
	int guess = 0;
	cout << "请输入你猜的数字(范围为0-100)-->" << endl;
	cin >> guess;
	while (num != guess) {
		if (guess < num) {
			cout << "您猜的数字过小,请输入你猜的数字(范围为0-100)-->" << endl;
			cin >> guess;
		}
		else if (guess > num) {
			cout << "您猜的数字过大,请输入你猜的数字(范围为0-100)-->" << endl;
			cin >> guess;
		}
	}
	cout << "恭喜猜对" << endl;
	return 0;
}

rand()几种随机范围参考:https://www.runoob.com/w3cnote/cpp-rand-srand.html

最后

以上就是香蕉香菇为你收集整理的【菜鸟C++学习杂记】随机数以及猜数字游戏的全部内容,希望文章能够帮你解决【菜鸟C++学习杂记】随机数以及猜数字游戏所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部