怎么用C语言生成随机数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用C语言生成随机数相关的知识,希望对你有一定的参考价值。
想生成1~13的随机数,详细点谢谢,最好带上一段完整的代码
假设要生成的随机数是大于等于20且小于等于100的整数
#include<stdio.h>#include<time.h>
#include<stdlib.h>
void main() int a,b,x;
a=20; b=100;
srand((unsigned int)time(NULL)); //用当前时间生成一个随机数种子
x=rand()%(b-a+1)+a;
printf("得到一个随机数:%d\\n",x);
参考技术A 生成1~13的随机数,随机数序列中没有重复字数
#include <stdio.h>
#include <stdlib.h> // 包含rand()函数说明
#include <time.h>
#define N 13
void main( void )
inti, j, num[N], tmp; //用当前时间种子重置随机数生成器,使每次运行生成不同的随机数
srand((unsigned)time( NULL ) );
for(i=0;i<N;i++) // 生成N个数
while(1) //生成1个数
tmp=N *rand()/ RAND_MAX +1; // 产生随机数
for(j=0;j<i;j++) //判断是否重复
if( tmp==num[j] )
break;
if(j==i) // 找到1个数
num[i]=tmp; //入队列
break; // 开始下一轮
printf("%3d\t",num[i]); //打印结果
如果可以重复,去掉内循环,直接将生成的随机数存入数组。 参考技术B
srand(int)来设种子,然后每次rand()返回一个随机数。
注意要包含#include <stdlib.h>头文件,因为用到了srand函数
#include <time.h> //用到了time函数int main()
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
for (int i=0; i<10; i++)
int number = rand() % 12 + 1; //产生1-13的随机数
printf("%d\\n", number);
return 0;
本回答被提问者采纳 参考技术C 产生一定范围随机数的通用表示公式
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。 参考技术D #include<stdio.h>
#include<stdlib.h>
#include<time.h>
int func()
return rand() % 13 + 1;//rand()产生0到32767的随机数,模13就得到0到12的随机数,加1就是1到13的随机数
int main()
srand((unsigned)time(0));//这个也是关键,是放入随机数种子,通常都是放系统当前时间的。
for (int i = 0;i<10;i++)
printf("random : %d\\n", func());
return 0;
以上是关于怎么用C语言生成随机数的主要内容,如果未能解决你的问题,请参考以下文章