程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c語言隨機數,隨機數

c語言隨機數,隨機數

編輯:關於C語言

c語言隨機數,隨機數


 

這個有點兒坑,每次結果都是一樣的,說好的隨機根本不隨機。其實 隨機數本身也是通過計算得到的,每一次都是通過隨機數種子計算得到的。如果隨機數種子不同那麼計算出來的隨機數就不同,而產生隨機數種子的函數同樣在 stdlib.h 裡面,函數是:srand().

【此部分代碼在function1()裡面】

我們需要給隨機數種子每次以不同的值,然後就能得到不同的隨機數了,但是還有一個弊端。種子怎麼才能得到不同的值。那我們知道時間每時每刻都不相同,所以如果能用時間給到隨機數種子裡面,那麼每次得到的結果必然是不相同的。

得到

 

這個結果就比較好了。

 

下面源代碼。

 

 

#include <iostream>
#include <stdlib.h>
#include <time.h>
/**
    rand() 來自 stdlib.h 文件 
*/
void function1(void);
void function2(void);
//int[] makeArray(int array[]);//怎麼返回int類型的數組? 
void display(int array[]); 
int main() {
    function1();
    function2();
    return 0;
}
void function2(void){
    int array[10];
    int randomseed = (int) time(NULL);//包含在time.h裡面 
    //返回當前時間,是time類型需要強制類型轉換成int類型。
    srand(randomseed);
    for(int i=0;i<10;i++){
        array[i]=rand();
    }
    display(array);
}
void function1(void){
    //我們利用 rand() 來產生隨機數:
    int array[10];
    for(int i=0;i<10;i++){
        array[i]=rand();
    }
    display(array);
}

void display(int array[]){
    for(int i=0;i<10;i++){
        printf("array[i]=%d ",array[i]);
        if((i+1)%5==0){
            printf("\n");
        }     
    }
}
    

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved