#include #define PR(x) printf(#x " = %.8g\t",(double)x) #define NL putchar('\n') #define PRINT4(x1,x2,x3,x4) PR(x1); PR(x2); PR(x3); PR(x4); NL void main() { double d; float f; long l; int i; i = l = f = d = 100/3; PRINT4(i,l,f,d); d = f = l = i = 100/3; PRINT4(i,l,f,d); i = l = f = d = 100/3.; PRINT4(i,l,f,d); d = f = l = i = (float)100/3.; PRINT4 (i,l,f,d); i = l = f = d = (double)(100000/3); PRINT4(i,l,f,d); d = f = l = i = 100000/3; PRINT4(i,l,f,d); } /* Remember in C and C++ int/int = int quotient, no remainder. int%int = int remainder double/int = double, the quotient is cast to a double. int/double = double. That is why the '3.' (3 point) in line i = l = f = d = 100/3.; */