怎样使用C语言中随机函数
作者:bea
除了random函数,还有一个rand函数,也是一个随机函数,可以产生从0到rand_max的随机数。
#include
#include
int main()
{
int k;
k=rand();
printf("%d\n", k);
return 0;
}
大家可以把以上的代码编译运行一下,发现他的确产生随机数了,但是你会发现,每次运行程序产生的随机数都是一样的,为什么呢?因为随机数取在C语言中采用的是固定序列,所以每次执行所取的是同一个数。
那么如何写一个程序,让它每次运行时产生的随机数都不一样呢? 请看下面的例子:
#include
#include
#include
int main(void)
{
int i;
time_t t;
srand((unsigned) time(&t));
printf("Ten random numbers from 0 to 99\n\n");
for (i=0; i
printf("%d\n", rand()%100);
return 0;
}
这时运行程序,会发现每次产生的随机数都不一样。
那么为什么第一个程序一样而第二个程序不一样呢?
第二个程序用到了一个新的函数srand,这个函数是给随机数产生一个随机种子(seed),函数原型是srand( (unsigned) time(NULL));
time的值每时每刻都不同。所以种子不同,所以,产生的随机数也不同。
所以说,要想产生不同的随机数,在使用rand之前需要先调用srand
由于rand产生的随机数从0到rand_max,而rand_max是一个很大的数,那么如何产生从X~Y的数呢?
从X到Y,有Y-X+1个数,所以要产生从X到Y的数,只需要这样写:
k=rand()%(Y-X+1)+X;
这样,就可以产生你想要的任何范围内的随机数了。
有用 | 无用猜你喜欢
您可能感兴趣的文章:
- 无法远程登录MySQL怎么办
- 怎样向MySQL数据表中插入数据
- 介绍几个备份MySQL数据库的方法
- 怎样保护MySQL中重要的数据
- MySQL数据库常用命令大全
- 修改visual c++ 6.0默认代码字体和大小
- 编程经验分享:如何学习C语言
- C语言可以做什么 C语言的应用方向
- 编译C程序提示缺少mspdb60.dll文件
- Linux平台C语言开发必须学习的知识
- Linux系统配置c/c++开发环境详解
- 详解C语言中关于string的函数(二)
- 详解C语言中关于string的函数(一)
- 详解C/C++中关键字static
- C语言中指针的地址是如何分配的
- void类型以及void指针的使用方法
- 经常会使用到的C语言中反射的特性
- C语言判断图形文件图片格式的方法
- 怎样写出优秀的C语言代码