Я пытаюсь создать программу, которая просит пользователя выбрать, на какой стадии он будет играть, а затем программа спрашивает его, хочет ли он снова играть или нет, и по какой-то причине если пользователь вводит «y» - программа повторяется сама, но без запуска функции «этапы».Программа повторяется сама проблема
int main()
{
while (again == 'y')
{
getStage();
}
if (again == 'n')
{
printf("BYE BYE!");
}
system("PAUSE");
}
/*
Function "getStage"-
- gets a choice from the user about the stage he wants to play on
and checks if the choice is proper.
- Transfers the program to the "randCode" function to make secret code.
- Transfers the program to the "stages" function
*/
void getStage()
{
choice= 0;
do
{
printf("What stage would you like to choose? Choose Wisely: ");
scanf("%d", &choice);
fflush(stdin);
system("COLOR 07");
} while(choice < 1 || choice > 4);
randCode();
stages(choice);
printf("Whould you like to play again? (y/n): ");
scanf("%c", &again);
}
'fflush (stdin);' undefined behavior. –
Это 'fflush (stdin);' undefined behavior и просто добавьте пробел перед '% c' в спецификаторе формата. –
Вы должны добавить return 0 в конец main, а main сам должен быть объявлен как int main (void) –