scanf doesn't work for variables of type double

jsmng at csune.cs.uh.edu jsmng at csune.cs.uh.edu
Fri Sep 15 10:58:35 AEST 1989


I used the following program trying to read in 5 numbers interactively.
As a test, I typed in 1.0 1.0 1.0 1.0 1.0 as input but the output is
about 0.47 (approximately I forget the exact value but it is far from 1).
When I changed the type of vec[] to be float. Everything is fine.
Does anyone have any experience with this? According to K&R, %f for
double should be allowed in scanf. We are running SunOS 4.0.1 and
I think our C compiler follows the K&R standards (as opposed to
ANSI).

#include <stdio.h>
#define V 5
main()
{
  double vec[V];
  int i;
  for (i=0;i<V;i++)
    scanf("%f ",&vec[i]);
  for (i=0;i<V;i++)
    printf("%f ",vec[i]);
}



More information about the Comp.lang.c mailing list