注册 登录
编程论坛 C++教室

关于C++ Primer 第四版答案的一处错误

zsy_pfan 发布于 2009-07-21 22:39, 556 次点击
最近重新温习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]]
2 回复
#2
zsy_pfan2009-07-21 22:45
我真服了 为什么代码的缩进这么费劲 晕死了
#3
明次2009-07-21 22:48
那图片都不清晰
1