有時候我們需要程序產生一個隨機數.
可以用rand()
但是其實這個隨機數是偽隨機數,它是一個周期很長的一個值而已.
所以我們可以加入一個隨機數種子srand(),這個可以取以當前時間為基准的一個值.
1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <time.h> 4 main() 5 { 6 int i,k; 7 srand( (unsigned)time( NULL ) ); 8 for( i = 0; i < 10;i++ ) 9 { 10 k=rand()%100+1; //rand()%100表示取100以內的隨機數, 由於rand產生的隨機數是0到rand_max,而rand_max是一個很大的數,那么要產生一個從X到Y的隨機數,x=rand()%(Y-X+1)+X 11 printf( " k=%d\n", k ); 12 } 13 }
然后可以看一下我這里出的結果
1 k=18 2 k=62 3 k=97 4 k=28 5 k=85 6 k=97 7 k=99 8 k=47 9 k=35 10 k=59
其實如果把srand去掉,可以發現也會產生一些隨機數,只不過每次運行產生的隨機數都是一樣的.
那是因為你不設定種子,每次默認的種子都是1.
但是加上以后,就感覺比較隨機了,每次都是不一樣的.
