# loop not working correctly

• 11-01-2012
ilndboy11
loop not working correctly
i can't figure this out. the program loops but does not let you make another choice and just goes straight to press any button to continue,end. i'm new to all this so be gentile.
Code:

```// Multi Function Calculator #include <stdio.h> #include <stdlib.h> #define Pi 3.14159 int main(void) {     char num,ans; float voltage, resistance , current, amps, miles, km; float r, A, in, ft; double F, C;         do{     printf("Please choose from following calculcations.\n");     printf("Choose 1 to calculate Voltage.\n");     printf("Choose 2 to calculate Current.\n");     printf("Choose 3 to calculate Resistance.\n");     printf("Choose 4 to calculate Miles to Kilometers.\n");     printf("Choose 5 to calculate Kilometers to Miles.\n");     printf("Choose 6 to calculate Fahrenheit to Celisus.\n");     printf("Choose 7 to calculate Celisus to Fahrenheit.\n");     printf("Choose 8 to calculate the Area of a Circle.\n");     printf("Choose 9 to calculate Inches to Feet.\n");     printf("Press enter to quit.\n");     scanf("%c",&num);     switch(num) {        case '1' : // Volatage         printf("Enter the current in amps =>");         scanf("%f",&amps);         printf("Enter the resistance in ohms =>");         scanf("%f",&resistance);         voltage = amps * resistance;         printf("\nThe voltage is %0.2f volts.\n\n",voltage);         break; case '2' : // Current         printf("Enter the voltage in volts =>");         scanf("%f",&voltage);         printf("Enter the resistance in ohms =>");         scanf("%f",&resistance);         current = voltage / resistance;         printf("\nThe current is %0.2f amps.\n\n",current);         break; case '3' :  // Resistance         printf("Enter the voltage in volts =>");         scanf("%f",&voltage);         printf("Enter the current in amps =>");         scanf("%f",&amps);         resistance = voltage / amps;         printf("\nThe resistance is %0.2f ohms.\n\n",resistance);         break; case '4' :  // Miles to KM         printf("Enter number of miles =>");         scanf("%f", &miles);         km = miles*1.609334;         printf("\n%.0f miles is %.2f kilometers.\n\n", miles, km);             break; case '5' :  // KM to Miles         printf("Enter number of kilometers =>");         scanf("%f", &km);         miles = km*0.6214;         printf("\n%.0f kilometers is %.2f miless.\n\n", km, miles);             break; case '6' :  // F* to C*         printf("Enter degrees Fahrenheit =>", F);         scanf("%lf", &F);         C = (F-32)*5/9;         printf("\n%.0lf degrees Farenheit is %.2lf degrees Celsius.\n\n", F, C);         break; case '7' :  // C* to F*         printf("Enter degrees Celsius =>", C);         scanf("%lf", &C);         F = (C*(9/5))+32;         printf("\n%.0lf degrees Celsius is %.2lf degrees Farenheit.\n\n", C, F);         break; case '8' :  //Area of circle         printf("Enter radius of the circle =>", r);         scanf("%f", &r);         A = Pi*r*r;         printf("\nThe area of the circle is %.2f.\n\n", A);         break; case '9' : // Inches to feet         printf("Enter number of inches =>", in);         scanf("%f", &in);         ft = in/12;         printf("\n%.0f inches is %.2f feet.\n\n", in, ft);         break;             default : exit(0);         }         {                         printf("Do you want another calculation?(Y/N)=>",ans);             scanf(" %c",&ans);             printf("\n");printf("\n");             system("cls"); }         } while (ans == 'y'); return(0) ; }```
• 11-01-2012
stahta01
This is really the only line of your code; I looked twice at.
Code:

`scanf("%c",&num);`
It is normal for beginnings to forgot about the newline/linefeed char.

Adding a space before the "%" percent sign skips over white-space chars like newlines.

As like this.
Code:

`scanf(" %c",&num);`
Tim S.
• 11-01-2012
ilndboy11
awesome, thanks. i've written this out 3 times and was going crazy. now i can sleep at nite.