为什么这个程序算出来是3啊,有没有详细的过程啊

以下程序的输出结果是( )。

#include<stdio.h>

double f(int n)

{

int i;

double s=0;

for(i=1;i<=n;i++)

s+=1/i;

return s;

}

void main()

{

int i,m=3;

float a=0.0;

for(i=0;i<=m;i++)

a=a+f(i);

printf("%f\n",a);

}

因为不管i是1还是2,还是3,f(i)都是==1;当1/i时,如果i是一个大于1的整数,1/i==0,一个整数除以另一个整数,得出来的结果也是一个INT的数,比如1/2==0;1/3也等于0;