printf() doesn't take var/float arguments. You need to explicitly cast it to double.

Code:
printf( "b = %.1f", (double) b );