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 );
}
}