@denisfateev
Новичок в IT

Почему не выводится последнее значение?

Начал недавно изучать C++ и дошел до оператора "if". В ходе выполнения тестового задания в Microsoft Visual Studio Community 2022 Версия 17.0.4 (может в этом проблема?), почему-то не выводится последнее значение в консоли. Уже 10 раз все перепроверил, но ничего не получается.
По моей логике при вводе "11 22 22 33 33 33"
Должно вывестись:
"11 occurs 1 times
22 occurs 2 times
33 occurs 3 times"
но "33 occurs 3 times" не выводится в консоль. В чем может быть причина?

Прилагаю код для ознакомления:
#include <iostream>

int main()
{
    int currVal = 0, val = 0;
    if (std::cin >> currVal) 
    {
        int cnt = 1; 
        while (std::cin >> val)
        {
            if (val == currVal) ++cnt;
            else 
            {
                std::cout << currVal << " occurs " << cnt << " times " << std::endl;
                currVal = val;
                cnt = 1;
            }  
        } 
        std::cout << currVal << " occurs " << cnt << " times " << std::endl;
    }
    return 0;
}
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
"11 22 22 33 33 33"
Должно вывестись:
"11 occurs 1 times
22 occurs 2 times
33 occurs 3 times"
но "33 occurs 3 times" не выводится в консоль. В чем может быть причина?

if (val == currVal) ++cnt;
            else 
            {
                std::cout << currVal << " occurs " << cnt << " times " << std::endl;

В том, что после 3го "33" по-прежнему выполняется ветка if (val == currVal) ++cnt;.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы