天天看點

如何使用随機數函數

srand函數是随機數發生器的初始化函數,原型: 

  void srand(unsigned seed); 

  它需要提供一個種子,如: 

  srand(1); 

  直接使用1來初始化種子。

  不過常常使用系統時間來初始化,即使用 

  time函數來獲得系統時間,它的傳回值為從 00:00:00 GMT, January 1, 1970 

  到現在所持續的秒數,然後将time_t型資料轉化為(unsigned)型在傳給srand函數,即: 

  srand((unsigned) time(&t)); 

  還有一個經常用法,不需要定義time_t型t變量,即: 

  srand((unsigned) time(NULL)); 

  直接傳入一個空指針,因為你的程式中往往并不需要經過參數獲得的t資料。

  srand((int)getpid()); 

  使用程式的ID(getpid())來作為初始化種子,在同一個程式中這個種子是固定的 

  随機輸出十個0-100之間的整數 

  #include <stdlib.h> 

  #include <stdio.h> 

  #include <time.h> 

  void main( void ) 

  { 

  int i,k;

  srand( (unsigned)time( NULL ) ); 

  for( i = 0; i < 10;i++ ) 

  { 

  k=rand()%100; 

  printf( " k=%d\n", k ); 

  } 

  }