程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> typedef-一個計數程序報錯,編譯可以運行錯誤

typedef-一個計數程序報錯,編譯可以運行錯誤

編輯:編程解疑
一個計數程序報錯,編譯可以運行錯誤

新人剛剛學,在編譯一個計數出現次數的程序時候,編譯時沒問題,運行的時候報錯了。
不是很明白在哪個位置弄錯了,麻煩解答一下
#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;
        }

    }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved