Телефонная книга с использованием двойного связанного списка

#c #data-structures #linked-list

#c #структуры данных #связанный список

Вопрос:

Проблема в том, что программа работает нормально для первого выбора, но она начинает повторяться без запроса выбора и перехода в функцию AddNode или SearchNode

 list *newList = new list;

int choice = 0;
while (choice != 3)
{
    printf("What would you like to do?n");
    printf("1 - Insert something in the phonebook?n");
    printf("2 - Search something from the phonebook?n");
    printf("3 - Nothing at alln");
    printf("Enter 1 through 5: ");
    scanf_s("%d", amp;choice);


    switch (choice) {
    case 1:
        newList->addNode();
        break;
    case 2:
        newList->searchNode();
        break;
    default:
        printf("nThank you for using the phonebookn");
    }
    choice = 0;
}
  

Ответ №1:

В конце цикла устанавливается choice значение 0.
Затем код переходит к проверке значения в верхней части цикла.
Значение в верхней части цикла равно 0, что не равно 3, поэтому цикл продолжается.

Ответ №2:

Если вы все еще хотели бы сохранить ‘choice=0;’ в цикле while, вы могли бы использовать что-то подобное этому:

если(выбор!=3) выбор =0;

Надеюсь, это поможет!