View Single Post
Old 02-22-2008, 07:56 PM  
Kard63
Confirmed User
 
Kard63's Avatar
 
Join Date: Nov 2003
Location: 237 619 975
Posts: 8,944
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;
}
__________________
Kard63 is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote