![]() |
Anyone know C ? noob stuff
Why does my menu print twice everytime it loops?
************************** #include <stdio.h> void add() { int first; int second; printf("First integer: "); scanf("%d", &first); printf("Second integer: "); scanf("%d", &second); printf("Answer: %d\n\n", first + second); } void sub() { int first; int second; printf("First integer: "); scanf("%d", &first); printf("Second integer: "); scanf("%d", &second); printf("Answer: %d\n\n", first - second); } void mul() { int first; int second; printf("First integer: "); scanf("%d", &first); printf("Second integer: "); scanf("%d", &second); printf("Answer: %d\n\n", first * second); } void div() { int first; int second; printf("First integer: "); scanf("%d", &first); printf("Second integer: "); scanf("%d", &second); if (second == 0) printf("The second integer must be nonzero.\n\n"); else printf("Answer: %d\n\n", first / second); } void pow1() { int first; int second; printf("First integer: "); scanf("%d", &first); printf("Second positive integer: "); scanf("%d", &second); if (second <= 0) printf("The second integer must be positive.\n\n"); else { int answer = first; int i; for (i = 1; i < second; i++) answer *= first; printf("Answer: %d\n\n", answer); } } void gcd() { int first; int second; printf("First integer: "); scanf("%d", &first); printf("Second positive integer: "); scanf("%d", &second); if (first <= 0 || second <= 0) printf("Integers must be positive.\n\n"); else { if (first < second) { int temp = first; first = second; second = temp; } while (second != 0) { int remainder = first%second; first = second; second = remainder; } printf("Answer: %d\n\n", first); } } void fac() { int first; int second; printf("First integer: "); scanf("%d", &first); if (first <= 0) printf("The integer must be positive.\n\n"); else { int i; for(i = first-1; i > 0; i--) { first *= i; } printf("Answer: %d\n\n", first); } } int main(void) { char choice; int run = 1; while (run) { printf("----------------------------------------------\n"); printf("| 1. Add two integers. |\n"); printf("| 2. Substract two integers. |\n"); printf("| 3. Multiply two integers. |\n"); printf("| 4. Divide two integers. |\n"); printf("| 5. Integer raised to an integer power. |\n"); printf("| 6. Compute GCD of two integers. |\n"); printf("| 7. Compute factorial of an integer. |\n"); printf("----------------------------------------------\n"); printf("What would you like to do? "); choice = getchar(); printf("\n"); switch(choice) { case '1': add(); break; case '2': sub(); break; case '3': mul(); break; case '4': div(); break; case '5': pow1(); break; case '6': gcd(); break; case '7': fac(); break; case 'q': run = 0; break; case 'Q': run = 0; break; } } return 0; } |
enter was putting /n in the buffer bla bla I solved it.
|
why didn't you just use cin and cout for input and output?
also, I don't know what IDE you are using but you should manually format things by using tab or the format selection feature in Visual Studio It's easier to read that way |
also you might want to consider a switch statement or something like that instead of all these functions
|
All times are GMT -7. The time now is 01:27 AM. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
©2000-, AI Media Network Inc123