c语言产生0到9随机函数 c语言产生1~10随机数

C语言 产生3个 0到9的随机数

C语言函数名rand()

创新互联建站是一家从事企业网站建设、做网站、成都网站建设、行业门户网站建设、网页设计制作的专业网站制作公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点成百上千家。

简介

功 能::伪随机数发生器 所属库:stdlib.h

用 法: 需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每次执行代码都可以产生不同的随机数。

函数原型:int rand(void); 相关函数:srand、time、GetTickCount

程序例

1: #include "stdio.h"

#include "stdlib.h"

int main(void) {

int i;

printf("Ten random numbers from 0 to 99\n\n");

for(i=0; i10; i++)

printf("%d\n", rand() % 100);

return 0; }

例1程序在每次运行时都会生成相同的十个伪随机数,如要每次生成的随机数不同应结合srand函数和time函数。

///////////////////

int i,a;

for(i=0;i3;i++)

{

a=rand()%9;

printf("%d",a);

}

C语言随机函数怎样产生0-9互不相同的10个随机数

对已经获取到的随机数做标记,如果已经获取到过,那么则放弃该随机数,并继续获取。

直到获取到所有随机数为止。

参考代码如下:

#include stdio.h

#include stdlib.h

#include time.h

int main()

{

int a[10];//存储获取到的随机数。

int f[10] = {0};//存储是否获取到过。

int n = 0; //计数器。

srand(time(NULL));//设置随机数种子。

while(n10)

{

int m = rand()%10; //获取一个0~9的随机数。

if(f[m]) continue;//该数之前已经获取到过。

a[n++] = m;//将该数存入数组。

f[m] = 1;//标记该数已经获取过。

}

for(n = 0; n  10; n++)//打印结果。

printf("%d,",a[n]);

return 0;

}

如何用C语言产生不重复的0到9之间的随机数

刚调试了下,弄不明白的是,为什么SZ[10]明明不存在却永远是产生的r对应输出的数。。。

费解呀。但好像用9来说应该会更规范一些。

最后都沉底了。

。。。。又研究了20分钟,终于弄懂了。。。实际上应该是9更标准一些,虽然10不会溢出。。。rang()%(10-i)第一个从0-9里选,然后选过的消失。。。最后一个为9

第二次从0-8里选,选过的消失。。。最后2个为9,以后永远都选不上第8和第九。无论9出没出现过,以此类推。最终全部为九,其余消失。

如果为10的话,其实也影响不了,因为最后几个数永远都不会取到、

采纳了吧。。。。。。

额,其实最标准的应该把那个地方改成9-i,把没选的数字往前推,但是已经出现的过的就不必推了。。。


本文名称:c语言产生0到9随机函数 c语言产生1~10随机数
分享链接:http://scjbc.cn/article/doscepp.html

其他资讯