C语言怎样获取随机数(此教程十分详细)本文介绍用rand()和srand()实现 您所在的位置:网站首页 怎样取整数 C语言怎样获取随机数(此教程十分详细)本文介绍用rand()和srand()实现

C语言怎样获取随机数(此教程十分详细)本文介绍用rand()和srand()实现

2024-06-23 11:15| 来源: 网络整理| 查看: 265

学C语言的小白可能不懂怎样获取随机数,网上可能不全面,我给大家讲一下用rand和srand获取随机数(某一范围的随机整数以及小数)。 这是我第一篇文章,希望多多鼓励……

首先,使用这两个函数需要包含头文件,c++的可以用.

附上两函数原型:

void rand(void); void srand(unsigned int seed);

获取随机数函数rand用法为rand()%a,(a是一个整数,返回值为0到a的随机数,包含0,但不包含a)。假设a = 10,用一个变量b来接收,

b = rand()%10;

那么b值就会大于等于0小于10.

哈哈!那么我们这就学会获得随机数了嘛?假设你获得的b等于4,当年你再一次运行程序的时候,会发现b的值依然是4.那这就不算随机数了吧?

这里给大家讲一下,rand()这个函数返回值除了被a的值控制外,还被一个隐藏的全局变量seed控制,每一个seed值只对应一个范围内的随机数,而你再次运行程序,并不会改变seed的值,所以b的值不会发生改变.

既然seed的值不会自己改变,那怎样人为改变呢?就要用到srand函数.可以第一次运行的时候,调用rand之前,用srand先设置一个种子,例如srand((unsigned)1);第二次运行时改为srand((unsigned)2)。大家肯定也发现了这样很麻烦,有什么办法能够自动改变srand()参数的值呢?可以是时间。

【注意:srand()获取种子只需要在程序开头获取一次即可,不需要多次调用】

一种获取时间的方法,也是比较常用的是用time()函数,需包含头文件或(这里不多做介绍)。因此可以使用**srand((unsigned)time(NULL))**来设置种子,因为每次打开程序的时间不同,所以seed的值会改变。

srand((unsigned)time(NULL)); rand()%10;

我们已经解决了多次打开程序获得不同随机数的问题了,下面介绍怎样限定随机数的范围。

从rand入手ÿ



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有