C語言 rand函式生成隨機數
阿新 • • 發佈:2019-01-06
在實際的專案中,有時候需要生成一個隨機數,在C語言中隨機數的生成可以通過使用rand函式來實現。
rand函式包含在標頭檔案stdlib.h裡,因此使用rand函式需要宣告包含stdlib.h。
#include<stdlib.h>
#include<stdio.h>
int main(){
int i;
for(i = 0; i <10;i++){
printf("%d\n",rand());
}
return 0;
}
但是,這裡就出現了一個問題。
顯然,兩次產生的隨機數是完全相同的。因此可以這樣修改
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
int main(){
int i;
srand((unsigned) (time(NULL)));
for(i = 0; i <10;i++){
printf("%d\n",rand());
}
return 0;
}
在產生隨機數之前呼叫一下srand就可以了。
同時,如果限定一下產生隨機數的範圍的話,可以這樣產生10以內的隨機數
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
int main(){
int i;
srand((unsigned) (time(NULL)));
for(i = 0; i <10;i++){
printf("%d\n",rand()%10);
}
return 0;
}
還可以這樣產生5到10之間的隨機數
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
int main(){
int i,j;
srand((unsigned) (time(NULL)));
for(i = 0; i <10;i++){
do{
j = rand()%10;
}while(j < 6 || j >10);
printf("%d\n",j);
}
return 0;
}