C语言生成随机数问题

  • rand函数
  • srand函数
  • 时间戳和time()函数
  • 最终代码:

rand函数

rand - C++ Reference (cplusplus.com)

  • rand()函数是专门用来生成随机数的
  • rand()返回的是0~RAND_MAX(32767)之间的随机数
  • rand()函数在头文件stdlib.h中,使用前要导入这个头文件
  • 因为rand默认生成随机数范围是0~32767,这是一段很大的范围,所以我们需要限制随机数范围:rand()%100+1 范围:1~ 100 因为任何一个数字,模100,得到结果的范围是0~99,在加1,范围就是1 ~ 100
int num = rand()%100+1;
printf("%d", num);
  • 此时rand的确生成了随机数,但是每次生成的随机数都是固定值,所以我们要在rand()前使用一个srand函数,来设置随机数生成器

srand函数

srand - C++ Reference (cplusplus.com)

  • srand函数的定义(官方):
void srand (unsigned int seed);
  • srand函数也在头文件stdlib.h
  • srand的使用
srand(1);
int num = rand();
printf("%d", num);
  • 在srand中传不同的值,rand会生成不同的值

  • 所以我们为了得到不同的随机值,我们要给srand()传一个时刻变化的值——时间


时间戳和time()函数

  • 定义:时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
  • 在C语言中,time()会返回时间戳 time - C++ Reference (cplusplus.com)
  • time()的定义(官方):
time_t time (time_t* timer);
  • time()函数在time.h的头文件里,使用前要导入这个头文件
  • time()函数的使用:
srand(time(NULL));
int num = rand();
printf("%d", num);
//这时,每次都会生成不同的随机数
  • 但是这里会发现,每次生成的随机数都很相近,所以如果有循环生成随机数的要求,srand在程序中只需调用一次即可,不用重复调用,即把srand语句放到主函数里,生成随机数部分放到函数中

最终代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void test()
{int num = rand()%100+1;printf("%d\n", num);
}
int main()
{int n = 0;srand(time(NULL));printf("输入要生成随机数的个数:");scanf("%d", &n);for (int i = 0; i < n; i++){test();}
}

结果:

C语言生成随机数问题相关推荐

  1. 随机数生成器c语言,句子随机生成器-怎么用C语言生成随机数

    为随机数生成器初始化一个种子值在易语言中使用什么命令名 置随机数种子 () '调用格式: 〈无返回值〉 置随机数种子 ([整数型 欲置入的种子数值]) - 系统核心支持库->算术运算 英文名称: ...

  2. C语言生成随机数和随机数组

    C语言生成随机数和随机数组 time函数要包含头文件<time.h> rand函数要包含头文件<stdlib.h> 随机数 int a; srand((unsigned)tim ...

  3. c语言rand函数生成随机数,详解C语言生成随机数rand函数的用法

    说到rand函数,大家是不是会和EXCEL中的rand函数混淆,当小编第一次接触的时候也以为是EXCEL的函数,本文是爱站技术频道小编为大家带来的详解C语言生成随机数rand函数的用法,一起来看看吧! ...

  4. R语言生成随机数与统计分布函数

    R语言生成随机数与统计分布函数 常见的分布函数有正态分布.二项分布.F分布.几何分布等等,在R语言中可以使用help("Distrinction")命令来查看所有分布的列表 随机数 ...

  5. c语言生成随机数(c语言生成随机数并排序)

    vc环境下c语言怎么生成随机数能给个0-100之间的程序最好了- r = ( (double)rand() / ((double)(RAND_MAX) (double)(1)) ); 请问如何用C语言 ...

  6. c语言随机数生成0 99函数,C语言生成随机数的函数、延时函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面C语言代码使用了生成随机数的函数.延时函数.请大家仔细观察其显示效果. 从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定 ...

  7. c语言随机数循环延迟,C语言生成随机数的函数、延时函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面C语言代码使用了生成随机数的函数.延时函数.请大家仔细观察其显示效果. 从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定 ...

  8. c语言生成随机数猜数字大小,产生一个随机数,进行猜数字小游戏

    产生随机数 Random:用于产生随机数 使用步骤: 1.导包 import java.util.Random; 2.创建对象 Random r = new Random(); 3.获取随机数 int ...

  9. C语言生成随机数的函数,为什么循环后随机数都一样?

    代码如下: #include <stdio.h> #include <time.h> int main(int argc, char **argv) {int a ,b;cha ...

最新文章

  1. 解决0X000000该内存不能为read 的方法
  2. android关于设置list_item高度问题
  3. Python 中名词
  4. 线程锁定CPU linux,linux 线程与CPU绑定
  5. android 应用性能优化1
  6. 网络安全管理的“模拟人生”
  7. 清风老师数学建模课程——第一讲层次分析法
  8. ubantu 搭建我的世界java服务器 spigot核心
  9. 2019世界计算机语言排行,TIOBE:2019年12月全球编程语言排行榜
  10. Spring Boot 2.0 配置图文教程 1
  11. uint8_t / uint16_t / uint32_t /uint64_t 数据类型集中网上的解释
  12. 计算机采用的编码机制是什么,编码机制
  13. 8、iOS strip 与 dead strip
  14. 用maven驱动搜索dom4j异常,原因分析
  15. 数字签名与数字信封流程
  16. vim /etc/hostname1输入命令后进入到以下界面。
  17. 【第一届“文翁杯”现场竞技赛】T2 —蜀石经(优先队列模拟)
  18. 六大服务器和网络监控工具
  19. 华为HCIE-RS(数通datacom)论述题(十)
  20. Drony配合Charles实现App定向抓包

热门文章

  1. 实习周记1(sdk了解、fiddler抓包、反编译工具)
  2. python分别统计男女人数_python实现爬虫统计学校BBS男女比例(一),python男女比例...
  3. 怎样检查一张 SIMATIC 存储卡(SMC)有非一致性或者是格式错误?如何修复?
  4. c代码实现 ifft运算_2D-FFT及IFFT(C语言实现(转载)
  5. SSM集成umeditor详解
  6. html固定内容的文本框,文本域文字内容指定选中 张鑫旭-鑫空间-鑫生活
  7. 哪些特征使顶级的收益聚合与众不同?
  8. LeetCode刷题(154)~二进制链表转整数
  9. 圣斗士星矢ol外国服务器网站,国外粉丝狂热支持《圣斗士星矢ol》
  10. python 使用you-get批量下载视频