这是一个检测数字出现了几次的简单代码 为什么我输入五种数 他只输出四种?总是会漏掉我输入的最后一种?

#include
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;
}

表达不清!

currVal 的初始值是什么意思? 是要统计它么?

后面改变了 currVal 的值(currVal = val;) 是什么意思 ,重新统计?

题干的意思是 :
输入 1 2 2 4 5 5 6 6 8 9 10 ,统计出各个数字的个数么?

从你代码看;1.int cnt = 1;初始值应该0才对,2.要连续输入相同数才能有效,中间有个数不同就得重新数