C语言随机数生成_c语言随机数生成函数

yumo6662周前 (09-06)技术文章4

C语言rand和srand用法详解,在C语言实际编程过程中经常要使用到随机函数。例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌。

在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为:

函数的原型为:int rand (void);// void 表示不需要传递参数。

rand() 会随机生成一个位于 0 ~ RAND_MAX 之间的整数。

RAND_MAX 是 <stdlib.h> 头文件中的一个宏,它用来指明 rand() 所能返回的随机数的最大值。C语言标准并没有规定 RAND_MAX 的具体数值,只是规定它的值至少为 32767。在实际编程中,我们也不需要知道 RAND_MAX 的具体值,把它当做一个很大的数来对待就可以了。

#include <stdio.h>

#include <stdlib.h>

void main(){

int a = rand();

printf("%d\n",a);

}

为了保证每次生成的随机数不同,通过 srand() 函数来重新“播种”,这样种子就会发生改变。srand() 的用法为:

void srand (unsigned int seed);

它需要一个 unsigned int 类型的参数。在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么生成的种子就不同,最终的随机数也就不同。

使用 <time.h> 头文件中的 time() 函数即可得到当前的时间(精确到秒),就像下面这样:

srand((unsigned)time(NULL));

例如:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

Void main() {

int a;

srand(time(NULL));

a = rand();

printf("%d\n", a);

}

生成一定范围内的随机数:

int a = rand() %100 + 1;

分析:取模即取余,rand()%100+1我们可以看成两部分:rand()%100是产生 [0,100)的随机数,后面+1保证 a 最小只能是 1。

综合应用:

猜数字游戏:

/*

计算机随机产生100以内的整数,通过键盘来输入一个数,计算机进行比较做出提示,

直至输入正确结束。(数字炸弹游戏)

*/

#include<stdio.h>

#include<time.h>

void main()

{

int a,b;

srand(time(NULL));//产生时间种子,保证产生不同的随机数

a=rand()%100+1;//[1,100)

while(1)//永真循环break

{

printf("请输入数字:");

scanf("%d",&b);

if(b>a)

printf("大了!\n");

else if(b<a)

printf("小了!\n");

else

{

printf("猜对了!太厉害了!");

break;

}


}

}

相关文章

「初识C语言」编译过程_c语言编译过程详解

C语言编译过程认识C编译执行过程,是C学习的开端。我们来简单说C语言从编码编译到执行要经历一下过程:C源代码编译---->形成目标代码,目标代码是在目标机器上运行的代码。连接---->将目...

C语言模块程序设计?源文件和头文件如何划分模块?linux C第32讲

6 .c源文件和.h头文件配合使用假设我们开发一个图书馆管理系统,读者的信息使用reader.c和reader.h文件来管理,那么,读者在登记的时候,需要输入年龄,那么,可以设计如下的函数,接收登记读...

C程序设计之:1-1/2+1/3-... + 1/n 的和

求:1 - 1/2 + 1/3 - .... + 1/n 的和。和这道题不同的是,该题目里面,偶数项是负数,奇数项是正数。#include <iostream> using namespa...

C语言也可以制作视频播放器?只需5分钟即可制作一个自己的播放器

上一节简要的介绍了如何编写C语言程序调用 FFmpeg 库,读取视频文件,并将之逐帧转换为 ppm 图片,最后通过 save_frame() 函数将转换后的 ppm 图片保存到磁盘。本节将在上一节的基...

一起学《C程序设计》第六课——数组、字符串及实战练习

在之前的第三课中学习了基本数据类型,第五课学习了循环结构程序,做练习的时候处理的是一些有规律的数据,比如1~100的正整数,而当我们面对一堆没有规律的数据时该怎么去循环处理呢?把数据组合在一起构成一个...

每天一道c语言编程题,第四题(c语言经典 求素数)

编写一个程序,输入一个整数n,输出n以内的所有素数。#include <stdio.h>int main() { int n, i, j, flag; printf("请输入一...