与索引 returns 1 的分数求和
Sum with a fraction with an index returns 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 循环不应该 return
- i=1 --> 总和=0+(1/1)
- i=2 --> 总和=1+(1/2)
- i=3 --> 总和= 3/2 + (1/3)
我在这里错过了什么?
因为您使用的是整数,1/i
总是四舍五入为 0
,所以您的总和永远不会改变。
将 int
替换为 float
或 double
.
我想对从 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 循环不应该 return
- i=1 --> 总和=0+(1/1)
- i=2 --> 总和=1+(1/2)
- i=3 --> 总和= 3/2 + (1/3)
我在这里错过了什么?
因为您使用的是整数,1/i
总是四舍五入为 0
,所以您的总和永远不会改变。
将 int
替换为 float
或 double
.