C++第三章 使用批量数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39750664/article/details/79948837

3-3 编写程序计算它的输入中不同单词出现的次数

逻辑1:输入单词,输入一个遍历一次,有相同的统计加1,没有则新词入栈同时计数的向量长度加1。

逻辑2:全部进入vector中后排序,之后比较。

//统计输入中不同单词的个数
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main() {
	typedef vector<string>::size_type vec_sz;

	vector<string> words;
	vector<int> count;

	cout << "input your words"
		"followed by end-of-file";
	string word;

	//读入数据
	while (cin >> word) {
		bool found = false;
		for (vec_sz i = 0; i < words.size(); i++) {
			if (word == words[i])      //注意这边要用方括号
			{
				++count[i];
				found = true;
			}
		}

			if(!found) {
				words.push_back(word);
				count.push_back(1);
			}
	 }
	for (vec_sz i = 0; i < words.size(); ++i)
		cout << words[i] << " appeared" << count[i] << " times" << endl;
	while (1);
	return 0;
}

3-4 编写程序报告它的输入中最长以及最短的字符串长度

#include <iostream>
#include <string>
#include <vector>
#include<algorithm>

using namespace std;
int main() {
//	string::size_type len;
	vector<int> wordlen;
	cout<< "please input string:";
	string s;

	//存入向量的为每个字符串的长度
	while (cin >> s) {
		wordlen.push_back(s.size());
	}
	if (wordlen.size() == 0) {
		cout <<"please input something";
		return 1;
	}
	//排序 注意:向量编号从0开始,所以最后一个编号不是size,是size-1
	sort(wordlen.begin(), wordlen.end());
	cout <<"least:" <<wordlen[0]<<endl<< "longest:"<<wordlen[wordlen.size()-1];
	while (1);
	return 0;
}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页