GoFuckYourself.com - Adult Webmaster Forum

GoFuckYourself.com - Adult Webmaster Forum (https://gfy.com/index.php)
-   Fucking Around & Business Discussion (https://gfy.com/forumdisplay.php?f=26)
-   -   Anyone know C ? noob stuff (https://gfy.com/showthread.php?t=809871)

Kard63 02-22-2008 07:56 PM

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 02-22-2008 10:27 PM

enter was putting /n in the buffer bla bla I solved it.

Mr. Mojo Risin 02-23-2008 02:39 AM

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

mortenb 02-23-2008 04:07 AM

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