C++ Primer-第五章习题

5.9

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     
 6     unsigned vowelCnt = 0, otherCnt = 0;
 7     char ch;
 8     while (cin >> ch) {
 9         if (ch == 'a') {
10             ++vowelCnt;
11         }
12         else if (ch == 'e') {
13             ++vowelCnt;
14         }
15         else if (ch == 'i') {
16             ++vowelCnt;
17         }
18         else if (ch == 'o') {
19             ++vowelCnt;
20         }
21         else if (ch == 'u') {
22             ++vowelCnt;
23         }
24         else {
25             ++otherCnt;
26         }
27         
28     }
29     cout<<"Number of vowel: "<<vowelCnt<<"\n"
30         <<"Number of other: "<<otherCnt<<"\n"<<endl;
31     system("pause");
32     return 0;
33 }
View Code

 5.10

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     
 6     unsigned vowelCnt = 0, otherCnt = 0;
 7     char ch;
 8     while (cin >> ch) {
 9         switch (ch) {
10         case 'a':case 'A':case 'e':case 'E':case 'i':case 'I':case 'o':case 'O':case 'u':case 'U':
11             ++vowelCnt;
12             break;
13         default:
14             ++otherCnt;
15             break;
16         }
17     }
18     cout<<"Number of vowel: "<<vowelCnt<<"\n"
19         <<"Number of other: "<<otherCnt<<"\n"<<endl;
20     system("pause");
21     return 0;
22 }
View Code

5.11

if 语句 

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     
 6     unsigned vowelCnt = 0, otherCnt = 0, spaceCnt = 0, tableCnt = 0, lineCnt = 0;
 7     char ch;
 8     while (cin>>ch)
 9     {
10         ch = getchar();
11         if ((ch == 'a' || ch == 'A') || (ch == 'e' || ch == 'E') || (ch == 'i' || ch == 'I') || (ch == 'o' || ch == 'O') || (ch == 'u' || ch == 'U')) {
12             ++vowelCnt;
13         }
14         else if (ch == ' ') {
15             ++spaceCnt;
16         }
17         else if (ch == '\t') {
18             ++tableCnt;
19         }
20         else if (ch == '\n') {
21             ++lineCnt;
22         }
23         else {
24             ++otherCnt;
25         }
26     }
27     
28     
29     cout << "Number of vowel: " << vowelCnt << "\n"
30         << "Number of other: " << otherCnt << "\n"
31         << "Number of space: " << spaceCnt << "\n"
32         << "Number of table: " << tableCnt << "\n"
33         << "Number of line: " << lineCnt << "\n"
34         << "Number of other: " << otherCnt << "\n" << endl;
35 
36 
37 
38     system("pause");
39     return 0;
40 }
View Code

小结:第一个输入必须是字母,不能是空格、制表符等等,否则不计入。

switch 语句

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     
 6     unsigned vowelCnt = 0, otherCnt = 0, spaceCnt = 0, tableCnt = 0, lineCnt = 0;
 7     char ch;
 8     while (cin>>noskipws>>ch)
 9     {
10         switch (ch) {
11         case 'a':case 'A':case 'e':case 'E':case 'i':case 'I':case 'o':case 'O':case 'u':case 'U':
12             ++vowelCnt;
13             break;
14         case ' ':
15             ++spaceCnt;
16             break;
17         case '\t':
18             ++tableCnt;            
19             break;
20         case '\n':
21             ++lineCnt;
22             break;
23         }
24     }
25     
26     
27     cout << "Number of vowel: " << vowelCnt << "\n"
28         << "Number of other: " << otherCnt << "\n"
29         << "Number of space: " << spaceCnt << "\n"
30         << "Number of table: " << tableCnt << "\n"
31         << "Number of line: " << lineCnt << "\n"
32         << "Number of other: " << otherCnt << "\n" << endl;
33 
34 
35 
36     system("pause");
37     return 0;
38 }
View Code

cin后面写noskipws告诉cin不要忽略空白符。

 5.12

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     
 6     unsigned vowelCnt = 0, otherCnt = 0, spaceCnt = 0, tableCnt = 0, lineCnt = 0, ffCnt = 0, flCnt = 0, fiCnt = 0;
 7     char ch, ch_before=' ';
 8     while (cin>>noskipws>>ch)
 9     {
10         switch (ch) {
11         case 'a':case 'A':case 'e':case 'E':case 'i':case 'I':case 'o':case 'O':case 'u':case 'U':
12             ++vowelCnt;
13             if (ch_before == 'f') {
14                 ++fiCnt;
15             }
16             break;
17         case ' ':
18             ++spaceCnt;
19             break;
20         case '\t':
21             ++tableCnt;            
22             break;
23         case '\n':
24             ++lineCnt;
25             break;
26         case 'f':
27             if (ch_before == 'f') {
28                 ++ffCnt;
29             }
30             break;
31         case 'l':
32             if (ch_before == 'f') {
33                 ++fiCnt;
34             }
35             break;
36         }
37         ch_before=ch;
38         
39     }
40     
41     
42     cout << "Number of vowel: " << vowelCnt << "\n"
43         << "Number of other: " << otherCnt << "\n"
44         << "Number of space: " << spaceCnt << "\n"
45         << "Number of table: " << tableCnt << "\n"
46         << "Number of line: " << lineCnt << "\n"
47         << "Number of other: " << otherCnt << "\n"
48         << "Number of ff: " << ffCnt << "\n"
49         << "Number of fl: " << flCnt << "\n"
50         << "Number of fi: " << fiCnt << "\n" << endl;
51 
52 
53 
54     system("pause");
55     return 0;
56 }
View Code

思路:在switch后面将ch的值赋给ch_before

5.14

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 using namespace std;
 5 int main()
 6 {
 7     string str, str_before, str_max;
 8     unsigned int maxCnt = 0, m = 0;
 9     vector<string> strs;
10     vector<int> nums;
11     while (cin >> str) {
12         if (str == str_before) {
13             ++maxCnt;
14             ++m;
15         }
16         else {
17             
18             nums.push_back(maxCnt);
19             maxCnt = 1;
20             str_before = str;
21             strs.push_back(str);
22             m = 0;
23         }
24     }
25         nums.push_back(m + 1);
26         int a = 1;
27         vector<int>::iterator it = nums.begin();
28         for (it; it != nums.end(); ++it) {
29             if (*it > a) {
30                 a = *it;
31             }
32         }
33         for (int i = 0; i < nums.size(); ++i) {
34             if (nums[i] == a) {
35                 cout << "单词" << strs[i-1] << "出现了" << nums[i] << "" << endl;
36             }
37         }
38         system("pause");
39         return 0;
40 }
View Code

 

posted @ 2018-09-22 22:41  archerzon  阅读(98)  评论(0编辑  收藏  举报