При попытке вывести определённые данные программа выводит все данные подряд в C++

Всем привет! Написал программу, где содержится описание класса Student. Проблема в том, что надо вывести только тех студентов, у которых факультет Microbiology, вместо этого вижу вывод и тех студентов, факультет которого не Microbiology. Такая же проблема существует, когда пытаюсь вывести только тех студентов, родившихся после заданного года. Что может быть не так?

Кусочек кода:

// Список студентов с заданным факультетом
void list_of_faculties(Student spisok[], int n)
{
    bool found = false;

    string faculty;
    cin.get();
    cout << "Введите факультет для вывода списка студентов с заданным факультетом: ";
    getline(cin, faculty);
    cout << endl;
    
    for (int i = 0; i < n; i++)
    {
        if (spisok[i].get_faculty() == faculty)
            found = true;
            spisok[i].show();
    }
    
    if (found == false)
        cout << "Не найдено ни одного студента с заданным факультетом.";
}

Ссылка на мою программу:

https://drive.google.com/file/d/1kCUrq_hW2GvAqs3nTELJxmxkWqbcOpkY/view?usp=sharing

Эту проблему можно увидеть в виде скриншотов:

введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения


Ответы (1 шт):

Автор решения: Stanislav Volodarskiy

Фигурные скобки. Было:

        if (spisok[i].get_faculty() == faculty)
            found = true;
            spisok[i].show();

Стало:

        if (spisok[i].get_faculty() == faculty)
        {
            found = true;
            spisok[i].show();
        }
→ Ссылка