#include <stdlib.h>
#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類型,該類型的各數據成員
分別表示年月日時分秒。
*/
/* www.2cto.com
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())來作為初始化種子,在同一個程序中這
個種子是固定的
*/
摘自 小魚的專欄