【发布时间】:2018-02-06 01:39:41
【问题描述】:
我写了这个非常简单和简短的代码,但它不起作用:当我编译并执行函数 calculateCharges() 的返回值时,我期望 2 时为 0。
谁能解释一下为什么?
#include <stdio.h>
#include <stdlib.h>
float calculateCharges(float timeIn);
int main()
{
printf("%d", calculateCharges(3.0));
return 0;
}
float calculateCharges(float timeIn)
{
float Total;
if(timeIn <= 3.0)
Total = 2.0;
return Total;
}
【问题讨论】:
-
%d用于int值。你应该使用%f。 (并且还初始化Total,因为timeIn <= 3.0不是这种情况。)启用编译器警告并注意它们。 -
您使用不正确的格式说明符调用未定义行为进行转换。 C11 §7.21.6.1(p2 & p9) The fprintf function - insufficient arguments, or incorrect type.
-
三个问题:第一,Total没有初始化,所以它有一个随机值。其次,您尝试使用 %d 打印浮点数。最后,您可能期望 3.0
标签: c