我正在用 c 编写一个简单的函数,它将返回 2 个浮点值的中间值。
我的函数如下所示:
float mid(float a, float b) {
return (a + b)*0.5;
}
问题是这个函数总是产生 0.000000。我正在使用以下方法检查:
printf("%f", mid(2,5))
这将打印 0.000000。
但是,如果我这样做:
printf("%f", (2+5)*0.5)
这将打印 3.5,这是正确的。
我该如何解决这个问题?
最佳答案
功能不错。例如,这个小片段输出正确。
#include <stdio.h>
#include <string.h>
float mid(float a, float b); //declaration here
int main(void)
{
printf("%f\n", mid(2,5));
return 0;
}
float mid(float a, float b) {
return (a + b)*0.5;
}
你可能遇到的问题是,你没有像我一样添加mid()
的声明,编译器认为它返回隐式int
,这导致问题。
关于c - 在 C 中编写函数时返回浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26248208/