rand()產生隨機數
#include <stdio.h>
#include <time.h>
int main(void)
{
int m, n;
time_t t;
srand((unsigned) time(&t));//srand函式是隨機數發生器的初始化函式,不用的話每次產生同樣的隨機數
m = rand();//產生0-2^16的整數
n = rand()%10;//產生0-10的隨機數
printf("m = %d\nn = %d\n", m, n);
return 0;
}
/*
函式名: time 標頭檔案:time.h 函式原型:time_t time(time_t * timer)
功能: 獲取當前的系統時間,返回的結果是一個time_t型別,其實就是一個大整數,
其值表示從CUT(Coordinated Universal Time)時間1970年1月1日00:00:00(稱為UNIX
系統的Epoch時間)到當前時刻的秒數。然後呼叫localtime將time_t所表示的CUT時間轉換
為本地時間(我們是+8區,比CUT多8個小時)並轉成struct tm型別,該型別的各資料成員
分別表示年月日時分秒。
*/
/*
srand函式是隨機數發生器的初始化函式。
原型:void srand(unsigned seed);
用法:它需要提供一個種子,這個種子會對應一個隨機數,如果使用相同的種子後面的
rand()函式會出現一樣的隨機數。如: 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())來作為初始化種子,在同一個程式中這
個種子是固定的
*/