生成c中的随机浮点数[0,1]

NUO*_*NUO 1 c random

当我使用rand()和srand()在[0,1]中生成随机数时,它给出了我的数字:0.70324,0.70328,0.70321 ......

它们仅在最后一位或两位数上有所不同,而我的意图是获得随机浮点数,如0.1,0.7,0.3 ....

我怎么能得到这样的随机浮点数而不是在最后一位数上有所不同?

这是我的代码:

#include <time.h>
#include <stdlib.h>
#include <stdio.h>

int main(){
    int i;
    float randomNum;
    for (  i=0; i<10; i++){
        srand((unsigned int)time(NULL));
        randomNum = ((float)rand())/RAND_MAX;
        printf("%f\n",randomNum);
     }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

tre*_*tcl 7

你应该srand()在程序开始时只调用一次.在每次调用之前调用rand()它只会使结果更加可预测,因为每次调用它时可能与前一个数字非常相似.