C Programming Logic Error?

Posted by mbpluvr64 on Stack Overflow See other posts from Stack Overflow or by mbpluvr64
Published on 2010-05-03T22:59:07Z Indexed on 2010/05/03 23:08 UTC
Read the original article Hit count: 335

Filed under:

The following code compiles fine, but does not allow the user to choose whether or not the program is to run again. After giving the user the answer, the program automatically terminates. I placed the main code in a "do while" loop to have the ability to convert more than one time if I wanted too. I have tried to run the program in the command line (Mac and Ubuntu machines) and within XCode with the exact same results. Any assistance would be greatly appreciated.

  • C Beginner

P.S. Compiling on MacBookPro running Snow Leopard.


#include <stdio.h>
#include <stdlib.h>

int main(void)
{

        char anotherIteration = 'Y';

        do
        {
                const float Centimeter = 2.54f;
                float inches = 0.0f;
                float result = 0.0f;

                // user prompt
                printf("\nEnter inches: ");
                scanf("%f", &inches);

                if (inches < 0) {
                        printf("\nTry again. Enter a positive number.\n");
                        break;
                } else {
                        // calculate result
                        result = inches * Centimeter;
                }

                printf("%0.2f inches is %0.2f centimeters.\n", inches, result);

                // flush input
                fflush(stdin);

                // user prompt
                printf("\nWould you like to run the program again? (Y/N): ");
                scanf("%c", &anotherIteration);

                if ((anotherIteration != 'Y') || (anotherIteration != 'N'))
                {
                        printf("\nEnter a Y or a N.");
                        break;
                }

        } while(toupper(anotherIteration == 'Y'));

        printf("Program terminated.\n");

        return 0;
}

© Stack Overflow or respective owner

Related posts about c