求解,为什么这样求调和级数不行?同学说应该是sum=sum+1.0/i,为什么?

#include<stdio.h>

int main()
{
int m; int i=1; float sum = 0;

scanf_s("%d", &m);
while (i <= m)
{
    sum = sum + 1/i;
    i=i+1;
}
printf("%.2f", sum);
    return 0;

}

i是整数类型,1是整数类型,1/i也是整数类型
假设i=10,则1/10=0
国庆 的你依然在学习,牛的