следующая программа должна рассчитывать количество раз, когда пользователь вводит целое число. пример: пользовательские входы 42 42 10 10. программа должна выйти: 42 происходит 2 раза, 10 - 2 раза.Неверный выход. C++ primer 1.4.4
проблема: код не выдаст последний результат для номера 10, пока вы не введете другой номер. Я вставил код ниже. этот код исходит из C++ primer. 1.4.4
#include <iostream>
int main()
{
// currVal is the number we're counting; we'll read new values into val
int currVal = 0, val = 0;
// read first number and ensure that we have data to process
if (std::cin >> currVal)
{
int cnt = 1; // store the count for the current value we're processing
while (std::cin >> val)
{ // read the remaining numbers
if (val == currVal) // if the values are the same
++cnt; // add 1 to cnt
else
{ // otherwise, print the count for the previous value
std::cout << currVal << " occurs " << cnt << " times" << std::endl;
currVal = val; // remember the new value
cnt = 1; // reset the counter
}
} // while loop ends here
// remember to print the count for the last value in the file
std::cout << currVal << " occurs " << cnt << " times" << std::endl;
} // outermost if statement ends here
return 0;
}
Используя код как есть, вам нужно ввести нечисловую строку, а также эти цифры, и вы получите счет, не вводя новый номер. – splrs
@splrs, я очень новичок в программировании. вы могли бы привести пример того, что такое «нечисловая строка»? или пример кода, необходимого для исправления проблемы вывода? – Matt
Попробуйте ввести 10 10 42 42 _z_. Это даст вам правильные счета и не запустит другой, то есть программа закончит. – splrs