我正在學習C++編寫一個程序來計算每個不同值在輸入中出現的連續次數。在C++中計數連續的次數?
的代碼是
#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;
}
但它不會算上最後一組數字。例如:如果我輸入5 5 5 3 3 4 4 4 4,則輸出爲:
5發生5次。 3發生2次。
最後設定的結果是「4出現4次」。沒有出現。
我想知道代碼有什麼問題。
請幫忙。
謝謝。
hc。
程序似乎此相關的問題至 在[ideone ...]上正常工作(http://ideone.com/zddsRo) – smac89