gpt4 book ai didi

c - 为什么从伪随机数生成器中只有0.000000?

转载 作者:行者123 更新时间:2023-12-05 01:37:04 26 4
gpt4 key购买 nike

为什么rand_float仅返回值0.000000?

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

int main(int test, int numpoints, int numtrials, int dimension){

//generate a random number
float r = rand_float();

//print it
printf("%f", r);
printf("\n");
}

//function generates a random float in [0,1]
int rand_float(){
srand(time(NULL));
return (float)rand()/RAND_MAX;
}

最佳答案

请注意,rand_float的返回类型为int

因此,[0,1)值(在float中)被隐式转换为0(一个int),这是该函数将返回的所有内容。

修复返回类型-通过将其从int更改为float

同样,可以向前声明rand_float函数,也可以将函数定义移至主函数..之前,并查看关于主问题的其他注释。启用(并读取)编译器警告,以获取有关[潜在]有问题的代码的提示!

关于c - 为什么从伪随机数生成器中只有0.000000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com