/* * Small demo of floating point summation problems, II */ #include int main(void) { float s = 0.; float sold = 10.; float n = 1.; while ( s != sold) { sold = s; s += 1./n; if ( ((long) n) % 100000 == 0) { printf("%20.f %20f\n", n, s); } n += 1.; } n -= 1.; printf("\n%20.f %f\n\n", n, s); s = 0; while ( n > 0) { s += 1./n; if ( ((long) n) % 100000 == 0) { printf("%20.f %20f\n", n, s); } n -= 1.; } printf("\n%20.f %f\n\n", n, s); return 0; }