www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - problem with doubles

reply Michael P. <baseball.mjp gmail.com> writes:
Content-Type: text/plain

So I've attached the file for a very simple program I'm working on.
The problem comes from past contests questions, see this:

http://www.cemc.uwaterloo.ca/ccc/past/previous_contests.shtml

The problem I've having is with 2008 Junior problem 1. Every time with my code
it says you are overweight, when it is supposed to say normal weight.
So I tried printing out the value I was comparing, and it said nan. Anyone know
why?
-Michael P.
Aug 10 2008
parent reply "Steven Schveighoffer" <schveiguy yahoo.com> writes:
"Michael P." wrote
 So I've attached the file for a very simple program I'm working on.
 The problem comes from past contests questions, see this:

 http://www.cemc.uwaterloo.ca/ccc/past/previous_contests.shtml

 The problem I've having is with 2008 Junior problem 1. Every time with my 
 code it says you are overweight, when it is supposed to say normal weight.
 So I tried printing out the value I was comparing, and it said nan. Anyone 
 know why?
 -Michael P.

scanf is a C function. You need to exactly specify the type in the string, so use %lf for double -Steve
Aug 10 2008
parent reply Michael P. <baseball.mjp gmail.com> writes:
Steven Schveighoffer Wrote:

 "Michael P." wrote
 So I've attached the file for a very simple program I'm working on.
 The problem comes from past contests questions, see this:

 http://www.cemc.uwaterloo.ca/ccc/past/previous_contests.shtml

 The problem I've having is with 2008 Junior problem 1. Every time with my 
 code it says you are overweight, when it is supposed to say normal weight.
 So I tried printing out the value I was comparing, and it said nan. Anyone 
 know why?
 -Michael P.

scanf is a C function. You need to exactly specify the type in the string, so use %lf for double -Steve

Thanks, that worked. BTW, I know that readf is the D equivalent of scanf(right?), but I don't know how to use it. I should be using readf and writef instead of scanf and printf right? -Michael P.
Aug 10 2008
parent "Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
"Michael P." <baseball.mjp gmail.com> wrote in message 
news:g7n3i3$bfm$1 digitalmars.com...
 Steven Schveighoffer Wrote:

 "Michael P." wrote
 So I've attached the file for a very simple program I'm working on.
 The problem comes from past contests questions, see this:

 http://www.cemc.uwaterloo.ca/ccc/past/previous_contests.shtml

 The problem I've having is with 2008 Junior problem 1. Every time with 
 my
 code it says you are overweight, when it is supposed to say normal 
 weight.
 So I tried printing out the value I was comparing, and it said nan. 
 Anyone
 know why?
 -Michael P.

scanf is a C function. You need to exactly specify the type in the string, so use %lf for double -Steve

Thanks, that worked. BTW, I know that readf is the D equivalent of scanf(right?), but I don't know how to use it. I should be using readf and writef instead of scanf and printf right?

Yes and yes. I really wish the C library were harder to use from D. So many newcomers end up overusing it and then wonder why they have so many issues. readf is very easy to use. Just like writef and friends, the function knows the type of the argument without having to look at the format string.
Aug 10 2008