#include <stdio.h>
int main() {
double s=0;
for (double x=1.0;x!=0;x-=0.1)
s+=x;
printf("%.1f\n",s);
return 0;
}
这是由于精度导致的,最终x不等于0
for的第二个语句是条件语句,只有满足条件才能进行for下面的计算,如果是x!=0的话就已经不满足条件了,因此不会执行for下面的语句,但是x>=0就可以
double精度会使0.1-0.1=0.00000000001,而不等于零