C++Primer习题6.12
来源:互联网 发布:mysql 复合主键 编辑:程序博客网 时间:2024/05/08 11:04
题目:编写一个小程序,从标准输入读入一系列 string 对象,寻找连续重复出现的单词。程序应该找出满足以下条件的单词的输入位置:该单词的后面紧跟着再次出现自己本身。跟踪重复次数最多的单词及其重复次数。输出重复次数的最大值,若没有单词重复则输出说明信息。例如,如果输入是:
how, now now now brown cow cow
My code:
#include<iostream>#include<string>using namespace std;int main(){ //vector<string> svec; string preWord = "", word, maxWord; int occurs = 0, maxOccurs = 0; //若有重复,记录次数 while(cin >> word) { //第一次输入,更新preWrod if(preWord == "") { preWord = word; occurs = 1; continue; }//如果出现重复单词,记录加1 if(preWord == word) { ++occurs; }//否则如果出现不同单词则判断,如果重复次数大于已记录的最大值,则更新最大值 else { if(maxOccurs < occurs) { maxWord = preWord; maxOccurs = occurs; } //更新preword,并从头开始计数 preWord = word; occurs = 1; } } if(maxOccurs < occurs)//注意最后一次循环容易忽略 { maxWord = word; maxOccurs = occurs; } if(maxOccurs != 1 ) cout << maxWord << ": " << maxOccurs << endl; else cout << "There is no repetition!" << endl; return 0;}
reference answer;
#include<iostream>#include<string>using namespace std;int main(){ string preWord, currWord; //当前输入的单词及前一次单词 string repWord; //重复次数最多的单词 //当前单词的重复次数及单词重复的次数最大值 int currCnt = 0, maxCnt = 1; cout << "Enter some words(Ctr+Z to end): "<< endl; while(cin >> currWord) { if(currWord == preWord) //当前单词重复出现 ++currCnt; else //出现新单词 { if(currCnt > maxCnt)//出现了重复次数更多的单词,更新4 { maxCnt = currCnt; repWord = preWord; } currCnt = 1; } preWord = currWord; } if(currCnt > maxCnt) { maxCnt = currCnt; repWord = preWord; } if(maxCnt != 1) cout << '"' << repWord << '"' << " repeated for " << maxCnt << " times!" << endl; else cout << "There is no repeated word." << endl; return 0;}
- C++Primer习题6.12
- C++Primer习题6.12
- c++primer 习题6.12
- c++primer 习题9.12
- c++primer 习题9.35
- c++primer 习题9.36
- c++primer 习题9.18
- c++primer 习题9.20
- c++primer 习题9.42
- c++primer 习题9.43
- c++primer 习题9.26
- C++primer习题6.20
- C++Primer习题9.26
- C++Primer 习题9.38
- C++Primer 习题9.39
- C++Primer习题9.40
- C++Primer习题10.9
- C++primer 习题6.22
- Django1.3 模板标签和过滤器
- java速成----一篇博文搞定基础
- 谁说vim不是IDE(转)
- PriorityQueue是个基于优先级堆的极大优先级队列
- 比较全面的gdb调试命令
- C++Primer习题6.12
- DM9000网卡驱动分析
- c/c++程序的内存分配 .
- 利用svcutil.exe 访问windows Server 2003的wcf服务生成客户端代码报错:无法从http://XXX/XXX.svc?wsdl获取元数据”错误的解决方法
- Android的联通性---Bluetooth(三)
- Git的Patch功能(转)
- A*算法理论与实践
- 【开源工程】mpc
- Git使用