我很想做1/2 + 2/3 + ... + 18/19 + 19/20℃,这里是我的代码:在C中加起来1/2 + 2/3 + ... + 18/19 + 19/20
版本1:
int main(){
double i,j,sum;
for(i=1,j=2,sum=0; i<=19 && j<=20; i++, j++)
sum+=i/j;
printf("%f\n",sum);
return 0;
}
版本1个输出: 16.402260
版本2:
int main(){
double i,j,sum;
for(i=1,j=2,sum=0; i<=19 && j<=20; sum+=i/j, i++, j++)
printf("%f\n",sum);
return 0;
}
2版输出:
0.000000
0.500000
1.166667
1.916667
2.716667
3.550000
4.407143
5.282143
6.171032
7.071032
7.98
8.896789
9.819866
10.748438
11.681771
12.619271
13.560447
14.504892
15.452260
版本3:
int main(){
double i,j,sum;
for(i=1,j=2,sum=0; i<=19 && j<=20; sum+=i/j, i++, j++)
;
printf("%f\n",sum);
return 0;
}
版本3输出:
16.402260
我很困惑,为什么版本1 & 3作品,其中包括版本2不,因为版本2和版本3非常相似,除了版本3的for循环包含空的主体以及版本2没有的主体。
噢好吧,明白了。谢谢Trinimon! = D顺便说一句,你的解释真棒! – Wobblester