回覆列表
  • 1 # 說漫小遊

    C語言中有很多的自帶函式,比如rand()%x這個函式就能產生0~x-1的隨機整數,當然應題主要求,我們要生成的是0~1之間的浮點數,但僅憑這個函式的功能的確無法生成我們想要的浮點隨機數,所以呢,在這裡我們就要運用一點小腦筋,我們就用四則運算生生地將那個整數變成浮點數,在這裡一些聰明的同學可能已經想到該怎麼辦了,也有一些經驗不足的同學可能還沒有反應過來,不怕,接下來我將會用例項告訴大家這麼獲得一個想要的隨機浮點數

    我們先上基礎程式:

    #include<stdio.h>

    #include<stdlib.h>

    void main()

    {

    float random; //定義一個浮點數變數

    for(int i=0;i<5;i++) //生成5個隨機浮點數

    {

    random=(rand()%100000)*0.00001; //透過四則運算限定隨機數範圍以及小數點後有效位數

    printf("%f\n",random);

    }

    }

    關注了,關注了,一人只限一次,走過路過不要錯過!

  • 2 # shenyaocan222

    用rand()/(double)(RAND_MAX); //產生0~1的浮點數

    例:#include void main()

    {

    double a;

    a= rand()/(double)(RAND_MAX);

    printf("%lf\n",a);

    }

    若要0~10的浮點數,則修改為rand() /(double)(RAND_MAX/10); //多了/10

    若要0~100浮點數,則修改為rand() /(double)(RAND_MAX/100) ......以此類推

    執行你會發現結果總是一樣,因為這嚴格上只是偽隨機數(做平時練習的話,用這個應該可以了)

    若是要求更嚴格準確的隨機數的話,用上srand 例:

    #include void main()

    { double a;

    srand((unsigned)time(NULL));

    a= rand()/double(RAND_MAX);

    printf("%lf\n",a);

    }

    這樣每次產生的隨機數是不同的

  • 中秋節和大豐收的關聯?
  • 篩選EXCEL表格怎樣重新排序?