C语言 | 您所在的位置:网站首页 › 怎么生成随机数并赋值给数组的方法 › C语言 |
文章目录
前言一、效果二、说明[1]. 先使用srand()函数设置随机数种子[2]. 生成范围从A~(A+B-1)范围的随机数
三、示例代码[1]. C实现[2]. C++实现
前言
此篇文章主要的目的是记录一下随机数的常用生成方法,每次我一没回去复习随机数之后就容易将知识点遗忘掉。 随机数的生成有好几种的方法,此处仅介绍其中一种我认为较方便的方法——[a,b]范围的随机数生成。 一、效果srand((int)time(NULL)); [2]. 生成范围从A~(A+B-1)范围的随机数rand()%B+A; 你可以将rand()%B+A赋值给某个变量,则该变量就被赋值了一个随机的值,或者是在打印函数中调用输出即可。 三、示例代码代码中的srand()和rand()函数的使用为重点,C和C++ 代码已包含有必要的注释,请仔细阅读注释。 [1]. C实现 /* 代码作者:小狐狸 代码介绍: 若没有设置随机数的种子,重新生成的随机数将和上一次输出的随机数相同 生成从a~(a+b-1)的随机数赋值给Y: 1. srand((int)time(NULL)) 2. Y=rand()%b+a; */ #include #include //srand()、rand()所需 #include //time()所需 int main() { srand((int)time(NULL));//设置随机数种子 while(1) { int fox; printf("------------------\n"); printf("| 按0结束 |\n"); printf("| 按1键继续 |\n"); printf("------------------\n"); scanf("%d",&fox); if(fox==0) break; int start,last; int x; printf("起始数 截止数:\n"); scanf("%d%d",&start,&x); //起始值即为start,但是截止的值并不是rand()%b+a中b的值. //因为rand()%b+a中产生随机数的范围是从a到a+b-1 //所以要生成从start到x的随机数的话 //需要满足start=a,同时x=a+b-1,由此可以算出rand()后的b last=x-start+1;//计算出rand()%b+a中b的值 if(start srand((int)time(NULL));//设置随机数种子 while(1) { int fox; cout |
CopyRight 2018-2019 实验室设备网 版权所有 |