| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5284 人关注过本帖
标题:小菜b求大神解答,所有分数送上,希望能指出存在的问题,今晚坐等。。
只看楼主 加入收藏
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:20 
回复 楼主 哒哒哒啦啦啦
//已测试
#include<iostream>
#include<vector>
#include<string>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;
int main()
{
    vector<string> v;      //这个是存放单词的
    vector<int> v1;        //这个是存放每个重复过的单词的容器,奇数位是单词在容器v中的位置,以便于比较后输出,偶数位是对应奇数位重复出现的最大数字
    vector<int> v2;        //这个是比较v1的遍数哪个大,将大的存在里面
    string i;
    int n1 = 1;
    while (cin >> i)
        v.push_back(i);
    cout<<"Input Finished!\n";
    string*active=v.begin();
    cout<<"The inputed words:";
    while(active!=v.end())
    {
        cout<<*active<<" * ";active++;
    }
    cout<<endl;
    string KeyWord="xxxxxxxxxxxxxxxxxxxxxx";//连续最高频的词
    string LastWord="mmmmmmmmmmmmmmmmmmmmmm";//上一个词
    short num=0;//连续最大的次数
    short n=0;//当前单词连续次数
    active=v.begin();
    while(active!=v.end())
    {
        if(*active!=LastWord)
        {
            if(n>num)//更新连续最高频单词
            {
                num=n;KeyWord=LastWord;//刷新单词
            }
            n=1;//当前单词从1开始计数
            LastWord=*active;//更新单词
        }
        else
            n++;
        active++;
    }
    cout<<"The word selected: "<<KeyWord<<"\t"<<num;
    return 0;
}
2016-04-13 18:40
c974288432
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:44
专家分:104
注 册:2015-7-18
收藏
得分:0 
这WHILE(COUT>>I) 是怎么结束的
2016-04-13 18:41
哒哒哒啦啦啦
Rank: 1
等 级:新手上路
帖 子:75
专家分:4
注 册:2016-2-26
收藏
得分:0 
经过各位大神点播,改正了原程序,测试没问题~
#include<iostream>
#include<vector>
#include<string>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;
void main()
{
    vector<string> v;      //这个是存放单词的
    vector<int> v1 = { 0,0 };        //这个是存放每个重复过的单词的容器,奇数位是单词在容器v中的位置,以便于比较后输出,偶数位是对应奇数位重复出现的最大数字
    vector<int> v2;        //这个是比较v1的遍数哪个大,将大的存在里面
    string i;
    int n1 = 1;
    while (cin >> i)
        v.push_back(i);

    int j = v.size();
    for (int n = 0; n + 1 < j; ++n)
    {
        if (v[n] == v[n + 1])
        {
            ++n1;
        }
        if (((v[n] != v[n + 1]) && (n1 > 1)) || (n+2==j))   //n+2==j,是为了判断当最后一组是重复次数最多的数时,要放入v1
        {
            if (v1[0] < n1)
            {
                v1[0] = n1;              //把目前重复次数最多的一组放里面
                v1[1] = n;
            }
            n1 = 1;
        }
    }
    cout << "出现次数最多的单词是" << v[v1[1]] << endl;
        cout << "出现次数是" << v1[0] << endl;
}
   
2016-04-13 19:55
哒哒哒啦啦啦
Rank: 1
等 级:新手上路
帖 子:75
专家分:4
注 册:2016-2-26
收藏
得分:0 
回复 12楼 c974288432
没有输入就结束了
2016-04-13 19:55
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
回复 12楼 c974288432
回车之后Ctrl+z,再回车,结束
2016-04-13 19:59
哒哒哒啦啦啦
Rank: 1
等 级:新手上路
帖 子:75
专家分:4
注 册:2016-2-26
收藏
得分:0 
回复 11楼 yangfrancis
谢谢,改完跟你的思路有点像
2016-04-13 20:02
哒哒哒啦啦啦
Rank: 1
等 级:新手上路
帖 子:75
专家分:4
注 册:2016-2-26
收藏
得分:0 
回复 9楼 lin5161678
多谢,很详细,分数给你的最多啦~
2016-04-13 20:04
c974288432
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:44
专家分:104
注 册:2015-7-18
收藏
得分:0 
回复 14楼 哒哒哒啦啦啦
试了几次没成  在看看去
2016-04-15 16:40
c974288432
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:44
专家分:104
注 册:2015-7-18
收藏
得分:0 
回复 15楼 yangfrancis
  我的要CTRL Z 回车  CTRL Z 回车  谢了哈
2016-04-15 16:53
快速回复:小菜b求大神解答,所有分数送上,希望能指出存在的问题,今晚坐等。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017522 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved