Как вывести значение локальной переменной из цикла? с++
Есть данный фрагмент кода. Если среди оценок есть "2", то выводит данные об ученике. Задача: сделать так, чтобы при отсутствии таковых учеников выводилось соответствующее сообщение.
Проблема: не знание/ не понимание.
Что пробовал: пытался добавить счетчик в цикл (if (k == 0) cout "Таких учеников нет"), но как вы знаете значение локальных переменных после цикла не сохраняется и соответственно k=0 всегда вне цикла. Пытался также как-то записать значения счетчика в глобальную переменную через указатели, но ничего не вышло. Гуглить - тоже не получилось.
void vivod()
{
cout << "Студенты, имеющие оценку 2: \n\n";
for (i = 0; i < 10; i++)
{
s1 = string(stud1[i].ses, 5);
pos = s1.find("2");
if (pos != -1)
{
cout << "Студент: " << stud1[i].name << "\n";
cout << "Группа: " << stud1[i].group << "\n";
cout << "Оценки: " << s1 << "\n\n\n";
}
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Что-то типа
void vivod()
{
cout << "Студенты, имеющие оценку 2: \n\n";
bool is = false;
for (i = 0; i < 10; i++)
{
s1 = string(stud1[i].ses, 5);
pos = s1.find("2");
if (pos != -1)
{
cout << "Студент: " << stud1[i].name << "\n";
cout << "Группа: " << stud1[i].group << "\n";
cout << "Оценки: " << s1 << "\n\n\n";
is = true;
}
}
if (!is) { cout << "Таких студентов нет\n\n"; }
}