新人剛剛學,在編譯一個計數出現次數的程序時候,編譯時沒問題,運行的時候報錯了。
不是很明白在哪個位置弄錯了,麻煩解答一下
#include
#include
#include
using std::vector; using std::cin;
using std::cout; using std::endl;
using std::sort;
int main()
{
int n;
vector sj;
cout<<"Please input the num:"<
while(cin>>n)
sj.push_back(n);
sort(sj.begin(),sj.end());
typedef vector::size_type vec;
vec i=sj.size();
for(int a=0,b=1;a!=i;++a)
{
if(sj[a]!=sj[a+1])
cout<<"the nums of"<<sj[a]<<"is"<<b<<endl;
else
++b;
}
return 0;
}
你的索引越界了
把原來的for循環改一下
if (i == 1)
{
cout<<"the nums of"<<sj[0]<<"is"<<1<<endl;
}
int currnetnum = sj[0];
int count = 1;
for(int a=1;a!=i;++a)
{
if(sj[a]!=currnetnum)
{
cout<<"the nums of"<<currnetnum<<"is"<<count<<endl;
if(a = i - 1) // 最後一個
{
cout<<"the nums of"<<sj[a]<<"is"<<1<<endl;
}
else
{
currnetnum = sj[a + 1];
count = 1;
}
}
else
{
++count;
}
}