gpt4 book ai didi

c - 为什么这个函数返回零?

转载 作者:行者123 更新时间:2023-11-30 21:15:51 26 4
gpt4 key购买 nike

当我输入2.75的持续时间时,当我需要'和45分钟'时,此函数返回'和0分钟' 返回。问题出在 else if 部分。

void duration_time_min(double duration)
{
int duration_min;

if (duration < 1)
{
duration_min = duration * 60; // decimal times 60 converted to int
printf("Trip duration: 0 hour(s) and %i minute(s)\n", duration_min);
}
else if (duration > 1)
{
duration_min = (int) duration; // cast double to int
duration_min = duration_min - duration; // get decimal value for min
duration_min = duration_min * 60;
printf("and %i minute(s)\n", duration_min);
}
return;
}

最佳答案

问题出在行上

duration_min = duration_min - duration; // get decimal value for min

您最终会将该行中的 duration_min 设为 0,因为它的类型为 int。它无法捕获小数点后的任何内容。

此外,逻辑也不正确。您需要使用duration -uration_min

使用浮点来捕获差异。

double temp = duration - duration_min;
duration_min = temp * 60;

此外,不要期望输出是准确的,因为浮点表示并不总是准确的。

关于c - 为什么这个函数返回零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49088690/

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