Почему не обрабатывает последний входящий символ?
Вот код, тут нужно найти минимальное число в последовательности. Он не обрабатывает последниий веденый символ, с чем связано?
int main() {
setlocale(LC_ALL, "Russian");
vector<int> temp;
int buf;
int min = INT_MAX;
char ch;
while (cin >> buf) {
temp.push_back(buf);
if (cin.get() == '\n')
break;
for (int i = 0; i < temp.size(); i++) {
if (min > temp[i]) {
min = temp[i];
}
}
}
cout << "Минимальное число в последовательности = " << min << endl;
}
Ответы (1 шт):
Автор решения: Pavel Chernitsyn
→ Ссылка
Вы должны проверять, что следующий символ - перенос строки после проверки числа на минимум. Иначе проверка не выполнится => число будет проигнорировано. Вот рабочий вариант:
int main() {
setlocale(LC_ALL, "Russian");
vector<int> temp;
int buf;
int min = INT_MAX;
char ch;
while (cin >> buf) {
temp.push_back(buf);
for (int i = 0; i < temp.size(); i++) {
if (min > temp[i]) {
min = temp[i];
}
}
if (cin.get() == '\n')
break;
}
cout << "Минимальное число в последовательности = " << min << endl;
}