gpt4 book ai didi

c stdlib.h 中 RAND_MAX 和 rand() 的说明

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:00 27 4
gpt4 key购买 nike

当 RAND_MAX 的值为 0.000000RAND_MAX 不应该为 rand() 函数生成的数字设置最大值吗?

    #include <stdio.h>
#include <stdlib.h>
int main()
{

double a,b,c;
for (int i=0;i<100;i++){
a=(double)rand()/(double)RAND_MAX;
b=(double)rand()/(double)RAND_MAX;
c=a-b;
printf("itteration : %d values a=%f,b=%f,c=%f, RAND_MAX=%f \n",i,a,b,c,RAND_MAX);
}
return 0;
}

最佳答案

RAND_MAX 是一个整数常量,但您使用 %f 说明符(用于 double)打印它,这是未定义的行为(在你的情况下恰好打印 0)。使用 %d,您将看到 RAND_MAX 的实际值。

顺便说一句,如果您将警告设置得足够高,几乎任何体面的编译器都会警告您有关无效 printf 的信息。一定要这样做,C和C++的陷阱够多的,至少让编译器在它能帮你的时候帮你。

关于c stdlib.h 中 RAND_MAX 和 rand() 的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52051111/

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