《C++Primer第5版》第五章课后题答案

5.9、5.10、5.11

#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;

void main()
{
	int a_num = 0, e_num = 0, i_num = 0, o_num = 0, u_num = 0, space_num = 0, table_num = 0, newline_num=0;
				
				
	char ch;
	while (cin >> ch && ch != '~')
	{
		switch (ch)
		{
			case 'a':
			case 'A':
				++a_num;
				break;
			case 'e':
            case 'E':
				++e_num;
				break;
			case 'i':
            case 'I':
				++i_num;
				break;
			case 'o':
            case 'O':
				++o_num;
				break;
			case 'u':
            case 'U':
				++u_num;
				break;
			case ' ':
				++space_num;
				break;
			case '\t':
				++table_num;
				break;
			case '\n':
				++newline_num;
				break;

		}
	}
	cout << "元音字母a的个数是:" << a_num << endl;
	cout << "元音字母e的个数是:" << e_num << endl;
	cout << "元音字母i的个数是:" << i_num << endl;
	cout << "元音字母o的个数是:" << o_num << endl;
	cout << "元音字母u的个数是:" << u_num << endl;
	cout << "空格的个数是:" << space_num << endl;
	cout << "制表符个数是:" << table_num << endl;
	cout << "换行符个数是:" << newline_num << endl;
}

5.14暂未解决

5.17

#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;

void main()
{
	vector<int> v1 = { 0,1,1,2 ,7};
	vector<int> v2 = { 0,1,1,2,3,5,8 };
	vector<int> v3;
	int small_size = v1.size() < v2.size() ? v1.size() : v2.size();
	
	for (int i = 0; i < small_size; ++i)
	{   
		v3.push_back(v2[i]);
	}
	if (v1 == v3)
		cout << "是前缀" << endl;
	else
		cout << "不是前缀" << endl;
	
}

5.19

#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;

void main()
{	
	do
	{
		cout << "输入两个string" << endl;
		string s1, s2;
		cin >> s1 >> s2;
		cout <<( s1.size() < s2.size() ? s1 : s2 )<< endl;
		
	} while (cin);
}

5.20

#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;

void main()
{
	string s1, tmp;
	int flag = 0;
	cout << "请输入一个单词" << endl;
	while (cin >> s1 )

	{
		
		if (s1 == tmp)
		{
			cout << "单词" << s1 << "重复出现" << endl;
			flag = 1;
			break;
		}
		else
		{
			tmp = s1;
			cout << "如果继续,请再输入一个单词;如果停止输入,请按crtl+z" << endl;
	
		}
	}
	if (flag == 0)
	{
		cout << "没有重复单词出现" << endl;
	}

}

5.21

#include <iostream>
#include <vector>
#include <string>
using namespace std;
using std::vector;

void main()
{
	string s1, tmp;
	int flag = 0;
	cout << "请输入一个单词" << endl;
	while (cin >> s1 )
	{
		if (s1[0] >= 'A'&&s1[0] < 'Z')
		{
			if (s1 == tmp)
			{
				cout << "单词" << s1 << "重复出现" << endl;
				flag = 1;
				break;
			}
			else
			{
				tmp = s1;
				cout << "如果继续,请再输入一个单词;如果停止输入,请按crtl+z" << endl;
			}
		}
		else
			cout << "如果继续,请再输入一个单词;如果停止输入,请按crtl+z" << endl;
			continue;
		
	}
	if (flag == 0)
	{
		cout << "没有以大写字母开头的单词重复出现" << endl;
	}

}

猜你喜欢

转载自blog.csdn.net/jiangsujiangjiang/article/details/88744819