scanf doesn't work for variables of type double
MARWK at levels.sait.edu.au
MARWK at levels.sait.edu.au
Mon Sep 18 20:29:41 AEST 1989
In article <12988 at uhnix1.uh.edu>, jsmng at csune.cs.uh.edu writes:
> 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]);
> }
You must use: scanf("%lf", &var) for doubles (long floats).
Ray
More information about the Comp.lang.c
mailing list