读书人

C++高手指教啊该如何解决

发布时间: 2012-02-12 17:16:34 作者: rapoo

C++高手指教啊。。。
书上的一个作业答案,是统计ff、fl、fi出现的次数,但是出现fff岂不是要把ff的次数变为2了,以此类推是不是有点不恰当啊?要是只能将两个ff出现一次才计数加1的话应该怎么改呢?
#include<iostream>
using namespace std;
int main(){
char currch,prech;
int ffcnt=0,flcnt=0,ficnt=0;
while(cin>>currch){
if(prech=='f')
switch (currch){
case 'f':++ffcnt; break;
case 'l':++flcnt; break;
case 'i':++ficnt; break;
}
prech=currch;
}
cout<<"number of 'ff'"<<ffcnt<<'\n';
cout<<"number of 'fi'"<<ficnt<<'\n';
cout<<"number of 'fl'"<<flcnt<<endl;
return 0;
}



[解决办法]
你的程序没有退出的给你加了个退出“currch == 27”遇到ESC退出
下面是你想要的功能:
1 #include<iostream>
2 using namespace std;
3 int main(void){
4 char currch,prech;
5 int ffcnt=0,flcnt=0,ficnt=0;
6 while(cin>>currch){
7 if (currch == 27)
8 break;
9 if(prech=='f')
10 switch (currch){
11 case 'f':++ffcnt; break;
12 case 'l':++flcnt; break;
13 case 'i':++ficnt; break;
14 }
15 if (prech=='f' && currch=='f')
16 prech='\0';
17 else
18 prech=currch;
19 }
20 cout<<"number of 'ff'"<<ffcnt<<'\n';
21 cout<<"number of 'fi'"<<ficnt<<'\n';
22 cout<<"number of 'fl'"<<flcnt<<endl;
23 return 0;
24 }

读书人网 >C++

热点推荐