gpt4 book ai didi

c - 执行 printf 时为 nan

转载 作者:行者123 更新时间:2023-11-30 18:22:22 37 4
gpt4 key购买 nike

当我执行程序时

#include <stdio.h>
#include <math.h>
#include <unistd.h>

double exponential(double u);

double exponential(double u)
{
double a = (double)rand();
return (-u * log(1.0 - a));
}

int main(void)
{
printf("%e\n",exponential(2.3));
return 0;
}

我得到:

nan

为什么?

最佳答案

由于 rand() 返回一个整数(介于 0 和 RAND_MAX 之间),因此该整数通常大于 1 并且您的 log 表达式将为负值。对于负输入,log 返回 NaN(不是数字)。

关于c - 执行 printf 时为 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23843917/

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