首页 > 其他分享 >C语言rand函数生成随机数详解和示例

C语言rand函数生成随机数详解和示例

时间:2022-11-22 16:08:47浏览次数:41  
标签:rand 示例 int C语言 ii 随机数 100 include


文章目录

  • ​​1、生成随机数​​
  • ​​2、生成一定范围随机数​​
  • ​​3、获取视频教程​​
  • ​​4、版权声明​​


在C/C++程序开发中,会经常用到随机数这个功能,例如编写游戏类(纸牌)的程序时就需要用到随机数。

1、生成随机数

在C语言中,我们使用 <stdlib.h> 头文件中的 srand和rand 函数来生成随机数。

void srand(unsigned int seed);   // 随机数生成器的初始化函数
int rand(); // 获一个取随机数

srand函数初始化随机数发生器(俗称种子),在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么生成的种子就不同,最终的随机数也就不同,通常我们采用
<time.h> 头文件中的 time 函数即可得到一个精确到秒的时间作为种子。

示例(book63.c)

/*
* 程序名:book63.c,此程序用于演示随机数
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int ii;

srand(time(0)); // 播下随机种子

for (ii=0;ii<5;ii++) // 生成5个随机数
{
printf("%d ", rand()); // 获取随机数
}

printf("\n");
}

运行效果

C语言rand函数生成随机数详解和示例_rand

2、生成一定范围随机数

在实际开发中,需求往往是一定范围内的随机数,对于产生一定范围的随机数,就需要使用一定的技巧,常用的方法是取模运算(取余数),再做一个加法运算:

int a = rand() % 50;   // 产生0~49的随机数

如果要规定上下限:

int a = rand() % 51 + 100;   // 产生100~150的随机数

取模即取余数,rand()%51+100,rand()%51是产生 0~50 的随机数,后面+100保证 a
最小只能是 100,最大就是 50+100=150。

示例(book64.c)

/*
* 程序名:book64.c,此程序用于演示生成指定范围内的随机数
* 作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int ii;

srand(time(0)); // 播下随机种子。

for (ii=1;ii<=100;ii++) // 生成100个随机数。
{
printf("%03d ",rand()%51 + 100); // 获取100-150之间的随机数。

if (ii%20==0) printf("\n"); // 每20个数换行。
}

printf("\n");
}

运行效果

C语言rand函数生成随机数详解和示例_srand_02

注意,rand函数生成的随机数是不会重复的,但取模运算后的结果会重复,在实际开发中,需要编写额外的代码排除重复的数据。

作者:码农有道

标签:rand,示例,int,C语言,ii,随机数,100,include
From: https://blog.51cto.com/u_13748800/5878187

相关文章

  • C语言整数的输出
    文章目录​​一、整数的基本概念​​​​二、整数的书写​​​​1、二进制​​​​2、八进制​​​​3、十六进制​​​​4、需要注意的坑​​​​三、整数的输出​​​​四......
  • C语言for循环
    文章目录​​1、for循环介绍​​​​2、for循环嵌套​​​​3、获取视频教程​​​​4、版权声明​​1、for循环介绍for循环的一般形式为:for(语句1;表达式;语句2){语......
  • C语言for循环和while循环的区别
    文章目录​​1、for循环介绍​​​​2、while循环介绍​​​​3、循环的选择​​​​4、获取视频教程​​​​5、版权声明​​1、for循环介绍for循环的一般形式为:for(语句1......
  • C语言while循环
    文章目录​​1、while循环介绍​​​​2、循环的跳转​​​​3、while循环的应用​​​​4、dowhile循环​​​​4、获取视频教程​​​​5、版权声明​​1、while循环介绍......
  • C语言i++和++i的区别和用法
    文章目录​​1、用于独立的语句中​​​​2、用于表达式中​​​​3、获取视频教程​​​​4、版权声明​​C语言中++是自增运算符,表示操作数自增1;–是自减运算符,表示操作数......
  • C语言字符串
    文章目录​​一、字符串的概念​​​​二、占用内存的情况​​​​三、字符串的初始化​​​​四、字符串与指针​​​​五、字符串的结尾标志​​​​六、字符串的输出​​......
  • C语言数据类型转换
    文章目录​​一、自动类型转换​​​​1、操作数中没有浮点型数据时​​​​2、操作数中有浮点型数据时​​​​3、赋值运算符两侧的类型不一致时​​​​4、右值超出左值类......
  • C语言结构体
    文章目录​​一、结构体的概念​​​​二、结构体变量​​​​三、占用内存的情况​​​​四、结构体的变量名​​​​五、结构体初始化​​​​六、成员的访问(使用)​​​​......
  • C语言格式化输出
    文章目录​​一、格式化输出​​​​1、类型符(type)​​​​2、宽度(width)​​​​3、对齐标志(flags)​​​​4、精度(prec)​​​​二、格式化输出到字符串​​​​三、C语言代......
  • C语言main函数的参数
    文章目录​​一、main函数的参数​​​​二、C程序的规范写法​​​​三、envp参数​​​​四、课后作业​​​​五、获取视频教程​​​​六、版权声明​​程序运行的时候......