mardi 13 août 2019

Where in the if statement does my program go wrong?

The program takes a monetary value in, for ex. (3.85) and should return the minimum number of coins needed to make that value. The answer to this being 16

Another example would be 2.37 Which should return 12

The coin values are 0.25, 0.10, 0.05, and 0.01

    float change = cash;
    int num = 0;
    do
    {
        change = change - 0.25;
        num++;
    }
    while (change >= 0.25);       

    if (change == 0.00)
    {
        printf("%i\n", num);
    }
    else if (change != 0.00)
    {
        do
        {
            change = change - 0.10;
            num++;
        }
        while (change >= 0.10);

    }
    if (change == 0.00)
    {
        printf("%i\n", num);
    }
    else if (change != 0.00)
    {
        do
        {
            change = change - 0.05;
            num++;
        }
        while (change >= 0.05);

    }
    if (change == 0.00)
    {
        printf("%i\n", num);
    }
    else if (change != 0.00)
    {
        do
        {
            change = change - 0.01;
            num++;
        }
        while (change >= 0.00);

        printf("%i\n", num);
    }

I put in 2.37 and I get 12. but when I put in 3.85 I get 18. When it should be 16

Aucun commentaire:

Enregistrer un commentaire