不使用map,用结构体和输入输出流编写一程序,允许从键盘输入任意多个英语单词,中间用空格分开,输入0表示输入结束。该程序可以统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出,后面跟上该单词被输入的次数。 点击复制后,将打开C知道体验页 我
时间: 2023-05-21 18:04:57 浏览: 100
可以帮您编写这样一个程序。首先,定义一个结构体Node,用于存储单词及其出现次数:
```
struct Node {
string word;
int count;
};
```
然后,利用vector容器来存储所有输入的单词
```
vector<string> words;
string word;
while (cin >> word && word != "0") {
words.push_back(word);
}
```
再利用循环遍历所有单词,对每个单词进行统计出现次数,最后按字典序排序输出
```
vector<Node> nodes;
for (auto word : words) {
bool found = false;
for (auto& node : nodes) {
if (node.word == word) {
node.count++;
found = true;
break;
}
}
if (!found) {
nodes.push_back({word, 1});
}
}
sort(nodes.begin(), nodes.end(), [](const Node& n1, const Node& n2) {
return n1.word < n2.word;
});
for (auto node : nodes) {
cout << node.word << " " << node.count << endl;
}
```
这样就实现了您的需求,希望可以帮到您。
阅读全文