首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

刚写了个统计单词个数的代码,有一点有关问题

2012-03-21 
刚写了个统计单词个数的代码,有一点问题C/C++ code#include iostream#include vector#include string

刚写了个统计单词个数的代码,有一点问题

C/C++ code
#include <iostream>#include <vector>#include <string>using namespace std;int main(){    string word,temp=" ";    int cnt=0;    vector<int> veci;    vector<string> vecs;    while(cin>>word&& word!=" ")    {        if(word==temp)        {            cnt++;        }        else        {            vecs.push_back(word);            veci.push_back(cnt);            temp=word;            cnt=1;        }    }    for(int i=1;i!=vecs.size();++i)    {        cout<<vecs[i]<<":"<<veci[i]<<endl;    }    int maxval=0,j=1,t=0;    for(;j!=veci.size();++j)    {        if(maxval<veci[j])        {            maxval=veci[j];            t=j;        }    }    cout<<"The most string is:"<<vecs[j]<<" number: "<<maxval<<endl;}

一运行就死机

[解决办法]
直接用map
[解决办法]
试了下运行不死机 不过也得不到结果了
[解决办法]
这个不用统计标点吧
[解决办法]
C/C++ code
#include <iostream>#include <map>#include <string>using namespace std;int main(){    map<string,int> word;    string str;    while( cin >> str )    {        word[str]++;    }    cin.clear();    cin.sync();    int max = 0;    map<string,int>::iterator iter;    for(   iter = word.begin(); iter != word.end(); ++iter )    {        if( max < iter->second )            max = iter->second;        cout << iter->first << ":"<< iter->second << endl;    }    for(   iter = word.begin(); iter != word.end(); ++iter )    {        if( max == iter->second )        {            cout<<"The most string is:"<< iter->first <<" number: "<<max<<endl;        }    }    return 0;} 

热点排行