c语言中如何引用产生的随机数

如题所述

第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()本回答被提问者采纳
相似回答