浮点函数不 return 浮点值
Float function does not return float value
我编写了两个简单的函数。我希望用户写入一个整数值,然后程序找到这两个函数的输出。代码如下所示,
#include <stdio.h>
float f(int x) {
return ((x * (x-2)) / 2);
}
float g(int x) {
return (x * (x - 1) * (x - 2) / 3);
}
int main() {
int i;
float f0, g0;
scanf("%d", &i);
f0 = f(i);
g0 = g(i);
printf("f(%d) = %0.2f , g(%d) = %0.2f", i, f0, i, g0);
return 0;
}
我创建了 float
函数,但是当我输入 5
时,f
函数应该给我 7.5
但我却有 7
作为输出。
我该如何解决这个问题?
在 return 语句中的这两个表达式中
return ((x * (x-2)) / 2);
return (x * (x - 1) * (x - 2) / 3);
这里用到了整数运算
更改这些语句,例如
return ((x * (x-2)) / 2.0f);
return (x * (x - 1) * (x - 2) / 3.0f);
或
return (( ( float )x * (x-2)) / 2);
return (( float )x * (x - 1) * (x - 2) / 3);
float f(float x){
return ((x * (x-2)) / 2);
}
float g(float x){
return (x * (x - 1) * (x - 2) / 3);
}
你好。请删除 int 并将 float 放入参数
我编写了两个简单的函数。我希望用户写入一个整数值,然后程序找到这两个函数的输出。代码如下所示,
#include <stdio.h>
float f(int x) {
return ((x * (x-2)) / 2);
}
float g(int x) {
return (x * (x - 1) * (x - 2) / 3);
}
int main() {
int i;
float f0, g0;
scanf("%d", &i);
f0 = f(i);
g0 = g(i);
printf("f(%d) = %0.2f , g(%d) = %0.2f", i, f0, i, g0);
return 0;
}
我创建了 float
函数,但是当我输入 5
时,f
函数应该给我 7.5
但我却有 7
作为输出。
我该如何解决这个问题?
在 return 语句中的这两个表达式中
return ((x * (x-2)) / 2);
return (x * (x - 1) * (x - 2) / 3);
这里用到了整数运算
更改这些语句,例如
return ((x * (x-2)) / 2.0f);
return (x * (x - 1) * (x - 2) / 3.0f);
或
return (( ( float )x * (x-2)) / 2);
return (( float )x * (x - 1) * (x - 2) / 3);
float f(float x){
return ((x * (x-2)) / 2);
}
float g(float x){
return (x * (x - 1) * (x - 2) / 3);
}
你好。请删除 int 并将 float 放入参数