关于C++ Primer 第四版答案的一处错误
最近重新温习C++ Primer,顺便下载了答案看看,发现答案的第六章第12题有错误,发此贴更正一下原答案以及题目见附件:
答案的代码编译运行后,凡是连续的单词最后出现的情况如输入:what what what或a a q q q等都会与预期的结果不一样
改正方法很简单,相信大家都能明白,由于此论坛在代码方面的操作极其繁琐,想做个说明都没办法大家自己对照着看吧。
最好将答案的代码输入电脑运行对照一下!
//改正的代码
#include<iostream>
#include<string>
using namespace std;
int main()
{
string preWord,currWord;
string repWord;
int currCnt=0,maxCnt=1;
cout<<"Enter some words(Ctrl+Z to end):"<<endl;
while(cin>>currWord)
{
if(currWord==preWord)
{
++currCnt;
if(currCnt>maxCnt)
{
maxCnt=currCnt;
repWord=preWord;
}
}
else
currCnt=1;
preWord=currWord;
}
if(maxCnt!=1)
cout<<repWord<<" repeated for "<<maxCnt
<<" times."<<endl;
else
cout<<"There is no repeated word."<<endl;
return 0;
}
[[it] 本帖最后由 zsy_pfan 于 2009-7-21 22:46 编辑 [/it]]