第1个回答 2011-05-21
下面给个实例 后面的是解释
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int seed; /*申明初始化器的种子,注意是usigned int 型的*/
int k;
printf("Enter a positive integer seed value: \n");
scanf("%u",&seed);
srand(seed);
printf("Random Numbers are:\n");
for(k = 1; k <= 10; k++)
{
printf("%i",rand());
printf("\n");
}
return 0;
}
当提供的种子相同时,随机数序列也是相同的。而且当种子为1时,与不使用srand()函数时一样的,也就是说rand()函数默认情况下初始化种子值为1;
在stdlib.h 中这两个函数的原型是:
int rand();
void srand (unsigned int);
srand(time(0)); i=rand(); 这样i就是一个真正意义上的随机数。
rand()产生伪随机数,srand函数提供种子,种子不同产生的随机数序列也不同,所以通常先调用srand函数 time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒,种子不同当然产生的随机数相同几率就很小了.
第2个回答 2011-05-21
例如将随机数赋值到a,就写成a=rand();不过头文件中应包含“#include<stdlib.h>", 但这样产生的随机数对于同一个编译器往往每回都是一样的,好似是随机的,英雌若要正真地产生随机数,则应该这样:“#include<stdlib.h> #include<time.h> 在main()中:srand(time(NULL); a=rand(); 就可以达到目的了。
第3个回答 2011-05-21
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int i;
srand((unsigned) time(NULL));
for (i = 0; i < 8; i++)
printf("random number %d\n", rand());
return 0;
}
第4个回答 2011-05-21
int i;
srand( (unsigned)time( NULL ) );
i=rand()本回答被提问者采纳