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

末蓝、 2023-05-22 10:22 93阅读 0赞

文章目录

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

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

1、生成随机数

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

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

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

示例(book63.c)

  1. /* * 程序名:book63.c,此程序用于演示随机数 * 作者:C语言技术网(www.freecplus.net) 日期:20190525 */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. int main()
  6. {
  7. int ii;
  8. srand(time(0)); // 播下随机种子
  9. for (ii=0;ii<5;ii++) // 生成5个随机数
  10. {
  11. printf("%d ", rand()); // 获取随机数
  12. }
  13. printf("\n");
  14. }

运行效果
在这里插入图片描述

2、生成一定范围随机数

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

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

如果要规定上下限:

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

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

示例(book64.c)

  1. /* * 程序名:book64.c,此程序用于演示生成指定范围内的随机数 * 作者:C语言技术网(www.freecplus.net) 日期:20190525 */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. int main()
  6. {
  7. int ii;
  8. srand(time(0)); // 播下随机种子。
  9. for (ii=1;ii<=100;ii++) // 生成100个随机数。
  10. {
  11. printf("%03d ",rand()%51 + 100); // 获取100-150之间的随机数。
  12. if (ii%20==0) printf("\n"); // 每20个数换行。
  13. }
  14. printf("\n");
  15. }

运行效果
在这里插入图片描述

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

3、获取视频教程

百万年薪程序员录制,《C/C++高性能服务开发基础》视频教程已在CSDN学院发布,优惠价12元,地址如下:
https://edu.csdn.net/course/play/29402

4、版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net)

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发此文,让更多的人可以看到它,谢谢!!!

发表评论

表情:
评论列表 (有 0 条评论,93人围观)

还没有评论,来说两句吧...

相关阅读