1. 程式人生 > >C語言 rand函式生成隨機數

C語言 rand函式生成隨機數

在實際的專案中,有時候需要生成一個隨機數,在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; }