• C语言中大家都知道的随机函数为random,但是random函数并不是ANSI C标准,所以random函数不能在gcc或者vc等编译器下编译通过。

  • c语言中,rand()函数可以产生随机数,但其产生的随机数是固定的。

#include <stdio.h>
#include <stdlib.h>int main()
{int x;for (x = 0; x < 5; x++){printf("%d\n", rand());    }return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

多次运行以上程序产生的结果并未发生变化。 
至于rand()函数产生随机数的范围为0~RAND_MAX,在Linux平台RAND_MAX定义在stdlib.h, 其值为2147483647。

  • 那么如何产生真正意义上的随机数呢,

    这就需要调用srand()函数, 
    通过srand((unsigned)time(NULL))来实现

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main()
{int x;srand((unsigned)time(NULL));for (x = 0; x < 5; x++){printf("%d\n", rand());    }return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

可见每一次运行产生的随机数都不相同。

  • 如何产生设定范围内的随机数

    由于rand产生的随机数从0到rand_ max,而rand_ max是一个很大的数,那么如何产生一个设定范围内,例如从X ~ Y的数呢? 
    从X到Y,有Y-X+1个数,因此要产生从X到Y的数,需要这样编写 
    number = rand() % (Y - X + 1) + X;

例如:产生1~100的随机数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main()
{int x;srand((unsigned)time(NULL));for (x = 0; x < 5; x++){printf("%d\n", rand() % (100 - 1 + 1) + 1);    }return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

以上就是我对随机函数的理解,希望对有需要的人能有所帮助。

关于C语言中随机函数的使用详解相关推荐

  1. java的匿名函数_JAVA语言中的匿名函数详解

    本文主要向大家介绍了JAVA语言中的匿名函数详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.使用匿名内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: ...

  2. C语言 中的 数据类型 超详解

    C语言 中的 数据类型 超详解 一.整型(int.short.long.long long) 1.有符号整型 有符号整型的数据类型通常包括 int.short.long.long long 四种,因为 ...

  3. (char*)x C语言中的和*的详解

    C语言中的指针是个让人看着,想着就头疼的问题;学习指针之前要先要懂得几个概念,在此先根据自己实际工作中遇到的几个例子说明一下.配上程序和编译结果. &和*在C语言中的含义:&取地址,* ...

  4. C语言中数组的使用详解

    文章来源: 学习通http://www.bdgxy.com/ 目录 1 数组的基本概念 2 数组定义语法 3 一维数组的初始化 3.1 全部初始化 3.2 部分元素赋初值 3.3 省略长度赋初值 4 ...

  5. C语言怎么判断字符YN,c语言中的宏_详解(转)

    1. 简单宏定义 简单的宏定义有如下格式: [#define指令(简单的宏)] #define 标识符替换列表 替换列表是一系列的C语言记号,包括标识符.关键字.数.字符常量.字符串字面量.运算符和标 ...

  6. c语言中的字符串数组,详解C语言中的字符串数组

    在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include #incl ...

  7. c语言中截取字符串 sub,详解C++ string常用截取字符串方法

    string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos) ...

  8. 关于C语言中的重点转义字符详解

    一.了解有哪些常见的转义字符 首先,我们知道在C语言中有许多转义字符,接下来我将一些常见的转义字符罗列下来:\? , \' , \'' , \\ , \a , \n , \t , \ddd , \xd ...

  9. C语言中声明和定义详解

    变量声明和变量定义 变量定义:用于为变量分配存储空间,还可为变量指定初始值.程序中,变量有且仅有一个定义. 变量声明:用于向程序表明变量的类型和名字. 定义也是声明,extern声明不是定义 定义也是 ...

最新文章

  1. 部署Awstats日志分析系统
  2. STM32:Flash擦除与读写操作(HAL库)
  3. 通过NetMassDownloader批量下载和使用微软.NET框架源代码
  4. 分布式服务常见问题—分布式事务
  5. Ansible基本命令
  6. 数据结构----快速排序
  7. horizon client 无法识别域_iText for Mac(OCR识别图中文字工具)
  8. 廖雪峰--python教程:笔记四-函数式编程
  9. 苹果华人工程师被捕后续,按“商业间谍”指控,本人不认罪
  10. 二进制数据(Image类型)从一个表存入另一个表
  11. 数据结构与算法JavaScript描述——队列
  12. educoder 数据挖掘算法原理与实践:决策树
  13. 反向题在测试问卷信效度_[问卷的信度和效度分析]问卷信度和效度分析
  14. java版我的世界快速建造_1分钟教你建造《我的世界》最精致的窑洞!从此告别穴居人生活?...
  15. 计算机编程导论python程序设计答案-计算机科学与Python编程导论_学堂云答案
  16. codeforces1132E Knapsack
  17. DirectShow编程
  18. 「AppleScript」循环遍历
  19. 使用超临界二氧化碳进行精密表面清洁
  20. Gox语言中的数组类型及其常用操作 - GX7.1

热门文章

  1. P3382 【模板】三分法
  2. Flutter 自定义View之 饼状图
  3. 4270. 【NOIP2015模拟10.27】魔道研究
  4. php 时间戳 星座,最精准最新十二星座日期表 时间表
  5. Zigbee——协调器组建网络
  6. 有没有好用的文档翻译工具推荐?
  7. 模运算性质-mod (ACM学习笔记)
  8. (python基础)df.loc和df.iloc
  9. 关于保险和理财,我是这么看的
  10. 面向对象的三大基本特征和六大基本原则