Я пытаюсь устранить ошибку в цикле в приведенном ниже коде, но я не могу понять, почему он не будет повторяться в первом «если», после в последнем «другом» («Представьте!") Я пишу 'n'.«D» работает нормально и возвращается к «иначе, если».В последнем исправленном коде я обновился с рабочим кодом.По крайней мере, это работает после того, как я нажимаю 'n' в последнем предложении "else" и возвращает меня в первое меню.
Оригинальный код
switch(alegere_opt1)
{
case 1:
while(decizie != 'n')
{
alegereStudent(&stud);
printf("Doriti sa introduceti un nou student? (d/n):");
scanf(" %c",&decizie);
if (decizie == 'n')
{
meniuPrincipal();
alegereStudent(&stud);
printf("Doriti sa introduceti un nou student? (d/n):");
scanf(" %c",&decizie);
}
else if (decizie == 'd')
{
alegereStudent(&stud);
printf("Doriti sa introduceti un nou student? (d/n):");
scanf(" %c",&decizie);
}
else
{
printf("Introduceti d sau n! ");
scanf(" %c",&decizie);
}
}
break;
Исправленный код:
switch(alegere_opt1)
{
case 1:
{
alegereStudent(&stud);
printf("Doriti sa introduceti un nou student? (d/n): ");
scanf(" %c",&decizie);
if (decizie == 'n')
{
meniuPrincipal();
alegereStudent(&stud);
}
else if (decizie == 'd')
{
alegereStudent(&stud);
}
else
{
printf("Introduceti d sau n! ");
scanf(" %c",&decizie);
}
}
break;
Пересмотренный код правильный:
switch(alegere_opt1)
{
case 1: while (decizie != 'z')
{
{
alegereStudent(&stud);
printf("Doriti sa introduceti un nou student? (d/n):");
scanf(" %c",&decizie);
if (decizie == 'd')
{
alegereStudent(&stud);
printf("Doriti sa introduceti un nou student? (d/n):");
scanf(" %c",&decizie);
}
else if (decizie == 'n')
{
meniuPrincipal();
}
else
{
printf("Introduceti d sau n! ");
scanf(" %c",&decizie);
if (decizie == 'n')
{
meniuPrincipal();
}
}
}
}
break;