为什么x变成小于1时就变成0了啊

img


计算这个但是x小于1时直接x被视作0了,明明正数输进去都是对的,输x为1,负数时就错了

因为你的x是int类型,也就是整型,就被四舍五入了改为float就行了,记住别忘了声明,函数的形参还有scanf的格式%f都要改过来哟

float x;
...
float function(int n,float x);
...
scanf("%d,%f",&n,&x);

整数除法的结果还是整数,由于涉及到除法,你需要把x转换为浮点数,不然你后边有个除以n的操作,有可能是返回0的。由于计算的结果,你期待是浮点数,你的参数定义,x就不应该定义为整数,而应该定义为float或者double类型的