c-与带索引的分数求和,返回1



我想对从1到1/100的所有分数求和,但当我编译以下代码时,我得到了"1〃;。

#include <stdio.h> 
main(){ 
int i,sum; 
sum=0;
for (i=1;i<=100;i++){ 
sum=sum+(1/i);
}
printf("%d",sum);
}

for循环不应该返回吗

  • i=1->sum=0+(1/1(
  • i=2->sum=1+(1/2(
  • i=3->sum=3/2+(1/3(

我这里缺少什么?

因为您使用整数,所以1/i总是四舍五入到0,所以您的和永远不会改变。将int替换为floatdouble

最新更新