A problem with my program.
I tried to create a program that gets an integer and returns 1.
Well, here it is:
Code:
int Option1(int num)
{
if(num%2 == 0)
{
num = num/2;
printf("\nNext value: %d", num);
Option1(num);
}
if(num%2 != 0)
{
num = num*3+1;
printf("\nNext value: %d", num);
Option1(num);
}
if(num == 1)
{
printf("\nFinal value: 1...DONE\n");
}
return 0;
}
int main(void)
{
int chosen_opt;
int num;
printf("Loops and conditions:\n");
printf("----------------------------\n");
printf("Choose an option:\n");
printf("#1 -Gets an integer and returns 1.\n");
printf("#2\n");
printf("#3\n");
chosen_opt = scanf("%d", &chosen_opt);
if(chosen_opt == 1)
{
printf("\nEnter a number:\n");
num = getchar();
Option1(num);
}
if(chosen_opt == 2) printf("\nIN CONSTRUCTION!!\n");
if(chosen_opt == 3) printf("\nIN CONSTRUCTION!!\n");
if(chosen_opt == 4) { printf("\nExiting in 5 seconds...\n"); sleep(5); }
getchar();
return 0;
}
I dunno why, but it runs an eternal loop (:O), why?