给定一个单词数组wordList,每个单词最多包含30个字符,列表中最多包含1000个单词。请编写程序void WordStatic(char*wordList[],int n,Word*wds,int&cnt),统计每个单词出现次数放入数组wds中,并将数组wds中的元素按出现的次数从高到低排序,其中n表示wordList中的元素个数,cnt表示wds中的元素个数,即出现的单词个数。c++程序实现。
时间: 2024-02-05 16:10:52 浏览: 111
rb-wordlist-generator:一个简单的用于创建单词表的Ruby工具
以下是实现WordStatic函数的c++代码:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct Word {
string word;
int count;
};
bool cmp(Word a, Word b) {
return a.count > b.count;
}
void WordStatic(char* wordList[], int n, Word* wds, int& cnt) {
cnt = 0;
for (int i = 0; i < n; i++) {
bool found = false;
for (int j = 0; j < cnt; j++) {
if (wds[j].word == string(wordList[i])) {
wds[j].count++;
found = true;
break;
}
}
if (!found) {
wds[cnt].word = string(wordList[i]);
wds[cnt].count = 1;
cnt++;
}
}
sort(wds, wds + cnt, cmp);
}
```
该函数首先将出现次数初始化为0,然后遍历wordList中的每个单词,对于每个单词,查找是否已经在wds数组中出现过,如果出现过则将其出现次数加1,否则将其加入wds数组中,并将其出现次数初始化为1。最后,使用自定义的cmp函数对wds数组中的元素按出现次数从高到低排序。
阅读全文