怎么用C语言生成随机数

想生成1~13的随机数,详细点谢谢,最好带上一段完整的代码... 想生成1~13的随机数,详细点谢谢,最好带上一段完整的代码 展开
 我来答
cdyzxy
2018-05-28 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3781万
展开全部

假设要生成的随机数是大于等于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);
}
ahulxh
推荐于2018-02-07 · 知道合伙人软件行家
ahulxh
知道合伙人软件行家
采纳数:267 获赞数:805
研究生教学:数据结构与算法、计算机图形学…… 本科生教学:C语言程序设计、多媒体创作……

向TA提问 私信TA
展开全部
生成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]); //打印结果
}
}
如果可以重复,去掉内循环,直接将生成的随机数存入数组。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-10-05
展开全部

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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Dickhuazai
2018-01-06 · 超过11用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:22.7万
展开全部
产生一定范围随机数的通用表示公式

要取得[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)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoyj163em
2014-01-17 · TA获得超过1033个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:364万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式