c语言中rand()函数怎么用?

2025-05-22 15:41:42
推荐回答(3个)
回答1:

#include
  #include
  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:

rand() 是产生一个随机整数。我常这样用。
#include
#include
void main()
{
int a,b;
a=rand();
b=rand();/*这样就获得两个随机数*/
printf("a=%d\nb=%d",a,b);
}你去百度百科上看一下吧,说不定有。

回答3:

// crt_rand.c
// This program seeds the random-number generator
// with the time, then exercises the rand function.
//

#include
#include
#include

void SimpleRandDemo( int n )
{
// Print n random numbers.
int i;
for( i = 0; i < n; i++ )
printf( " %6d\n", rand() );
}

void RangedRandDemo( int range_min, int range_max, int n )
{
// Generate random numbers in the half-closed interval
// [range_min, range_max). In other words,
// range_min <= random number < range_max
int i;
for ( i = 0; i < n; i++ )
{
int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
+ range_min;
printf( " %6d\n", u);
}
}

int main( void )
{
// Seed the random-number generator with the current time so that
// the numbers will be different every time we run.
srand( (unsigned)time( NULL ) );

SimpleRandDemo( 10 );
printf("\n");
RangedRandDemo( -100, 100, 10 );
}