help with if and else statements

This is a discussion on help with if and else statements within the C Programming forums, part of the General Programming Boards category; I am trying to write this program to show that all customers get a 30% discount and if you are ...

  1. #1
    Registered User
    Join Date
    Sep 2009
    Posts
    47

    Post help with if and else statements

    I am trying to write this program to show that all customers get a 30% discount and if you are a student and pay in cash then if answer is yes, you will get an additional 20%. This is what I have and am really stuck. Have went over my chapters as well as online and seem to be in a rut. Can any help?

    This is what I have:

    #include <stdio.h>

    #define SALERATE 0.3
    #define STURATE 0.2

    int main (void)
    {
    float PUR, /* Total price of purchases */
    SALEDIS, /* Primary sale discount */
    STUDIS, /* Student/Cash discount */
    NET; /* Net amount to pay after discounts */
    char STU, /* Student status indicator (Y/N)? */
    CASH; /* Case sale indicator (Y/N)? *)

    printf ("Ace Sports Bill\n\n");

    printf ("Total price of purchases? "); scanf (%lf, &PUR);
    printf ("Is this customer a student (Y/N)? "); fflush (stdin); scanf ("%c", &STU);

    if (STU = = 'Y' || STU = = 'y') STUDIS = PUR * SALERATE; PUR - SALERATE * STURATE;

    (This is where I am stuck, I do not know if the STU is correct and where to go to from that point on)

    Thanks
    Kathryn

  2. #2
    Registered User
    Join Date
    Sep 2004
    Location
    California
    Posts
    3,246
    Code:
    scanf (%lf, &PUR);
    You are missing quotes around the format string.

    Code:
    fflush (stdin);
    Cprogramming.com FAQ > Why fflush(stdin) is wrong

    Code:
    if (STU = = 'Y' || STU = = 'y') STUDIS = PUR * SALERATE; PUR - SALERATE * STURATE;
    Only the first statement after that if will be run if the conditional is true. The second statement will always be run. Did you mean to do this instead?
    Code:
    if (STU = = 'Y' || STU = = 'y') {
        STUDIS = PUR * SALERATE; 
        PUR - SALERATE * STURATE;
    }
    To avoid problems like this, it is a good idea to never put more than one statement on a line.
    bit∙hub [bit-huhb] n. A source and destination for information.

  3. #3
    a_capitalist_story
    Join Date
    Dec 2007
    Posts
    2,652
    First, this is C code, not C# code, so you're in the wrong forum.

    Second, you should always use code tags when posting code.

    Third, read this: Why fflush(stdin) is wrong.

    Fourth, what do you mean by "I don't know if the STU is correct?"

    You probably need/want to create a block after your if statement.

    Code:
    if (whatever)
    {
        /* Block of code to handle when whatever is true */
    }
    else if (whosiewhatsie)
    {
        /* Block of code to handle when whosiewhatsie is true */
    }
    else
    {
        /* Block of code to handle when neither whatever, nor
            whosiewhatsie are true */
    }

  4. #4
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    22,144
    Moved to C programming forum.
    C + C++ Compiler: MinGW port of GCC
    Version Control System: Bazaar

    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  5. #5
    Registered User
    Join Date
    Nov 2003
    Posts
    177
    Hello,

    Do not forget to use code tags while posting code also as u r using C language use the C furum.

    anyway

    you can write the main part of ur code as follow:

    1- total = cost while u have calculated the 30% disc
    2-
    if ((student) AND (pay in cash))
    total = cost while u calculate additional disc


    Good luch
    Arian

  6. #6
    Registered User
    Join Date
    Sep 2009
    Posts
    47

    Thanks Bithub

    Thank you for helping me with this. Our assignment was to draw a flowchart. Examples that were given did not include the Symb constant, so therefore I was even more confused as to what to do with it.

  7. #7
    Registered User
    Join Date
    Sep 2009
    Posts
    47
    Thank you for helping me. We are suppose to do a flowchart and the example nor my book showed how to do this with the symb constants. I got a bit confused. So each time I ask the question of whether a student and if pays in cash, I need to enclose this in braces?

  8. #8
    Registered User
    Join Date
    Nov 2003
    Posts
    177
    Quote Originally Posted by kburyanek View Post
    I need to enclose this in braces?

    There are several ways to write the conditional statement that u need. like:

    Code:
    if((student) AND (payInCash))
    {
        your code
    }
    Code:
    if(student)
        if(payInCash)
       {
            your code
        }

Popular pages Recent additions subscribe to a feed

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21