C语言编译为啥我的结果是1

定义一个形参为 int n,并有返回值的函数fun,其功能为用循环结构计算:1.0/1+1.0/2+1.0/3+1.0/4+…+1.0/n,并将计算结果返回。在main( )程序中定义变量 x =9, 然后用x作为实际参数调用fun 计算,并将返回值在main( )中输出。
我的程序
#include<stdio.h>
float fun(int n)
{
float sum=0;
for(int i =1;i<=n;i++)
sum+=(1/i);
return (sum);
}
int main()
{
int x=9;
float sum=fun(x);
printf("%f",sum);
}



1/i写成1.0/i就好

有帮助的麻烦采纳一下

float fun(int n)
{
for(int i=1;i<n+1;i++)
{
sum += (1/i);
}
return sum;
}