㈠ c语言为什么我三次随机输出的结果是一样的
非常简单:
get_lotto_draw();仅仅调用一次,生成的 getLottery也是唯一
int *getLottery =get_lotto_draw();
其实,你郑猜可以把这一句则悔放 循环里
for(times=0;times<3;times++) {
结喊盯型果就不一样
当然,这里对你的程序做了一点修改!
㈡ C语言实现的随机数生成程序为什么每次生成的数字一样用于STC89C54RD+
【答】rand()本就是伪随机数,是一张已知的随机数表。当函数执行的时候从表中按规律读取数据。故而,每次测试所得到的随机数都是兄衫一样的。
不过,你可以试一下srand(),先放个种子
【补充】败早不是说了吗?它本是伪随机数,就以一张已知的表。每次按同样的规律查,当然得到相同的数了 。
这样吧,你在rand()函数调用之前加上一句srand(time(null)),当然在引用头文件列表中也要加上#include <time.h> 语句。不过,不知道能不能察尘雀通过。单片机上好像还没有时钟。你先试一下
㈢ C语言生成随机数的函数,为什么循环后随机数都一样
srand()函数是初始化随机数产生器,它产生随机数种子,说白了就是初始化随机数。
srand((unsigned)time(0));取的是系统时间,也就是距离1970.1.1午夜有多少秒。而for循环每循环一次时间远远小于1秒,这就导致了srand((unsigned)time(0))产生的种子并没有改变。 那么,相同的随机数种子所产生的随机数肯定是一样的了。
(3)c语言随机数为什么输出一样扩展阅读:
C语言产生随机数的方法:
1,在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。
2,C语言中的随机函数random,可是random函数并不是ANSI C标准,所以说,random函数不能在gcc,vc等编译器下编译通过。
3,rand()会返回一随机数值,范围在0至RAND_MAX 间。返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,(其值至少为32767)我运算的结果是一个不定的数,要看你定义的变量类型,int整形的话就是32767。
4,在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。
㈣ 为什么我用C语言编写的一个随机数生成程序生成的数总是一样的
你需要设置随机数种子才能生成不一样的随机数
你可以参考下面这个样例
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j;
srand((int)time(0));/*设置随机数种子*/
for(i=0;i<10;i++)
{
j=rand()%100;
printf("%d\n",j);
}
return 0;
}
㈤ c语言产生均匀分布随机数为什么是同一个值啊
1.
c语言产生随机数
rand()
函数是要设置随机数种子的,即
srand()
函数。
若不调用,则是默认的随机数,也就是说这个随机数序列是固定的。
2.
而随机数序列是根据 srand()
所带参数的值变化而变化的,一般如是设置
srand(
time(NULL)
);
这样以时间来设置种子,可以保证程序在每次运行时,设置的种子参数都是变化的。
㈥ 请高手帮我看看为何我的c语言生成的随机数都相同我刚开始学。
原因: time(0)返回的是系贺指统的时间(从1970.1.1午夜算起),单位:秒,而世带那个循环运行起来耗时连0.000001秒都不到! 也就是说,srand(time(0)) 连着4次的种子是一样的,种子一样,生产的随机数当然是一样了。
srand的禅返配例子,你参考下就行:
/* RAND.C: This program seeds the random-number generator
* with the GetTickCount, then displays 10 random integers.
*/
#include <stdlib.h>
#include <stdio.h>
#include <winbase.h>
void main( void )
{
int i;
/* Seed the random-number generator with GetTickCount so that
the numbers will be different every time we run.
*/
srand(
GetTickCount()
);
/* Display 10 numbers. */
for(
i = 0; i < 10;i++
)
printf(
"%6d\n", rand()
);
}
㈦ C语言用rand函数为什么每次都是相同的随机数
生成随机数的时候没有初始化种子,每次生成的都是相同虚清的随机序列,
可以使用时间初始化。
在main函冲散数的第一句加上srand(time(null));
再调用rand()生成随机数。
需要包含以下头文件差判前
#include
#include
㈧ C语言用rand函数为什么每次都是相同的随机数
是这样的。
C语言中的随机数应该是应用的随机数表。
比如写一个程序
printf("%d",rand()%10);
每次运行结果都是一并信辩样的。
如果想产生每次不同的随机绝缺数,就坦启时间关联来产生随机数。
这样只要每次运行时间不同,随机数就不同。
㈨ C语言产生随机数字,结果输出值都一样
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//#include<crtdefs.h>
intmain(){
inti;
intnum;
srand((unsignedint)time(NULL));//改成这样就好了:先用时间初始化随机种子
for(i=0;i<10;i++){
//time_tt;
num=rand()%100; //生成随机数
printf("%d ",num);
num>50?printf("你赢了 "):printf("你输了 "); //0为假,非0为真
}
getchar();
}
㈩ 在c语言里,为什么rand()每次生成的数都一样
分类辩毁: 电脑/网络 >> 程序携缺备设计 >> 其他编程语言
问题描述:
如题~~~
解析:
那是因为rand()生成的是伪随机数,需要种子来产生不同的随机数。
如果在预编译时声明#include<ctime>,则可用生成种子的函数 srand((unsigned)time(NULL)) ,因为时间值可以看成是一个随扮销机的量(即每一时刻都不同),所以就生成了变化的伪随机数