由於這次要介紹的東西,不需要什麼邏輯,只是有些「江湖一點訣,說破不值錢」的手法。所以這次就以情境式的寫法,帶大家一步一步看透這個玩意吧~
rand()函式
首先取得一個亂數要使用rand()函式(定義在stdlib.h函式庫裡),這函式會把一個稱為「亂數種子」的數字,經過一串加減乘除後,運算(產生)出一個亂數,並且把亂數種子改掉,那一串加減乘除是固定的,是什麼不重要,畢竟你要產生的是亂數XD。
好了我們先來試試看,讓我們輸出5個亂數吧~所以我們輸入的下面的程式碼。
#include<stdio.h>
#include<stdlib.h>
int main()
int a,b;
for(a=1;a<=5;a++)
b= rand();
printf("%dn",b);
system("pause");
return 0;
#include<stdio.h>
#include<stdlib.h>
int main()
int a,b;
for(a=1;a<=5;a++)
b= rand();
printf("%dn",b);
system("pause");
return 0;
YA!亂數做出來啦︿︿,但是你有沒有發現每次執行,五個數都一樣!!如下圖
這是因為系統在設置亂數種子時,每次都會設成同樣的數值,所以經過固定的運算,得到的數值就會相同。
srand()函式
現在讓我介紹另一個函式:srand()(定義在stdlib.h函式庫裡),這個函式可以改變亂數種子,讓我們的亂數不會每次都一樣。這個函式需要輸入一個數字。
讓我們再來試一次吧~我參數輸入100做例子。
#include<stdio.h>
#include<stdlib.h>
int main()
int a,b;
srand(100); //我參數輸入100做例子
for(a=1;a<=5;a++)
b= rand();
printf("%dn",b);
system("pause");
return 0;
#include<stdio.h>
#include<stdlib.h>
int main()
int a,b;
srand(100); //我參數輸入100做例子
for(a=1;a<=5;a++)
b= rand();
printf("%dn",b);
system("pause");
return 0;
哇~跟亂數上次不一樣了,但再試了五次,怎麼每次都執行還是一樣=。=,這是因為你雖然把亂數種子換掉,但這個種子還是一個定數,所以當然還是一樣。
time(NULL)函式
那我們來想想,什麼數值是非定數?其中一種就是時間啦!現在我在介紹一個函式time()(定義在time.h函式庫裡),這個函式也需要輸入一個參數,這個參數有一定的格式,有興趣自己上網查XD,在這裡參數輸入NULL 就可以了,意思是不需要修改。time(NULL)會輸出從格林威治時間 1970年1月1號 0點0分0秒開始到現在的秒數,
現在再來試一次吧~
|
|