lzth.net
当前位置:首页 >> C语言srAnD函数的用法 >>

C语言srAnD函数的用法

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

呵呵,这个是我遇到过的问题,并进行了一些研究.其实这是因为srand()函数是一个随机数产生函数,其意思就是指c语言里的随机数都是由它来控制产生的!!!如果在应用srand()函数之前就用随机函数rand(),则相当于使用了srand(1); 而将srand((unsigned)time(null));这条语句放在了for循环里,即是用了srand((unsigned)time(0));故此句语句不变的话,产生的随机数就不变!!!不懂的话可以问我!

在c语言里面,两个函数包含在头文件里面,c++里面,标准库(被包含于中). srand函数是随机数发生器的初始化函数. 原型:void srand(unsigned seed); rand函数用来产生随机数,当然是伪随机数.

高级语言中带的随机数产生函数是伪随机数,伪随机数的意思是并不是真正意义上的随机数,而是通过某种运算或者在某种程度上产生随机的效果. 由于计算机是一种图灵机,相同的输入必定产生相同的输出.所以,我们必须在C语言随机数的基础上加上某种比较随机的条件,简称种子.这样产生的随机数才会看起来比较随机,而不会每次运行程序的时候是一样的了. 比如光用rand,产生5个随机数,每次运行程序可能结果都是一样的 可能都是4 9 3 8 7 但是使用了当前系统时间为种子的话,每次运行结果就可能不一样了 假设第一次运行是5 1 0 3 9 第二次运行可能就是8 7 1 3 4

rand()函数,一般根srand()函数一起用.它们在一起,作用是:产生一个随机数.通常格式为:srand ( (unsigned) time (NULL) ); a=rand()%x; //a,x,均为整型变量,其中,x在之前应被赋值.srand函数里面的unsigned也可以换成其它的.例如:int之类的数据类型,但结果也会有相应的变化.通过rand函数产生随机数以后,用%x来限定它的范围.即:0<=a<x.其原理是:用那个随机数,去除以x,留下所得余数,作为最终结果.

srand是用来设置随机时间的种子,一般与rand()结合使用.否则直接用rand()的话,每次运行程序的结果都相同. 原型:int srand (unsigned int seed); srand((unsigned) time(&t));此句的参数使用time()函数获得系统时间作为种子,并且把获得的时间强制转换为unsigned.

实际上没有真正意义上的随机数字,srand是初始化种子,如果,不初始化种子,那么每次rand函数的得到的随机数字都是一样的.具体的目的就是这样的.

#include#include#include int main() { int k; srand(time(NULL)); k=rand()%3; //随机生成0、1、2 switch(k) { case 0: printf("9:30"); break; case 1: printf("10:00"); break; case 2: printf("11:20"); break; } printf("\n"); return 0; }

rand函数功能为获取一个伪随机数(伪随机数的概念下面会有介绍).一、函数名: rand(); 二、声明:int rand(); 三、所在头文件:stdlib.h 四、功能:返回一个伪随机数.之所以说是伪随机数,是因为在没有其它操作下,每次执行同

#include <stdio.h>#include <stdlib.h> #include <time.h> int main() { srand((unsigned)time(NULL)); printf("%d\n",rand()%(100+100+1)+(-100)); // 范围为-100到100 return 0; }

lstd.net | rprt.net | jtlm.net | 9647.net | beabigtree.com | 网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com