编写一个程序,从键盘输入一个英文句子,按字母序输出每个单词及其重复次数,英文句子中只用空格分割单词
时间: 2024-05-24 11:11:01 浏览: 98
(Python实现)
sentence = input("请输入英文句子:")
words = sentence.split() # 将句子按照空格分割成单词列表
word_dict = {} # 存储单词及其出现次数的字典
for word in words:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
for key in sorted(word_dict.keys()): # 按字母序输出
print(key, word_dict[key])
相关问题
要求:用字典编写一个程序,用户输入英文句子,统计每个单词出现的次数,按单词字母排降序输出。
好的,以下是程序的代码:
```python
sentence = input("请输入英文句子:")
# 将句子按空格分割成单词列表
words = sentence.split()
# 统计每个单词出现的次数
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
# 按单词字母排序并降序输出
sorted_words = sorted(word_count.items(), key=lambda x: x[0], reverse=True)
for word, count in sorted_words:
print(word, count)
```
运行程序后,用户输入英文句子,程序会将句子按空格分割成单词列表,然后统计每个单词出现的次数,最后按单词字母排序并降序输出。
用C++编写一程序,允许从键盘输入任意多个英语单词(单词可以重复),中间用空格分开,输入0表示输入结束。该程序可以统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出,后面跟上该单词被输入的次数
以下是题目所需的完整代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_WORD_COUNT 10000 // 最大单词数量
#define MAX_WORD_LENGTH 50 // 单词最大长度
/**
* 单词结构体
*/
typedef struct {
char word[MAX_WORD_LENGTH]; // 单词
int count; // 应次数
} Word;
/**
* 单词比较函数,按字典序排序
*/
int wordCompare(const void * a, const void * b) {
Word* wordA = (Word*)a;
Word* wordB = (Word*)b;
return strcmp(wordA->word, wordB->word);
}
int main() {
Word words[MAX_WORD_COUNT]; // 单词数组
int wordCount = 0; // 实际单词数量
char wordInput[MAX_WORD_LENGTH]; // 输入单词缓存
// 读入单词
while (wordCount < MAX_WORD_COUNT) {
scanf("%s", wordInput);
// 如果输入0,结束输入
if (strcmp(wordInput, "0") == 0) {
break;
}
// 搜索单词是否已存在
int foundWordIndex = -1;
for (int i = 0; i < wordCount; i++) {
if (strcmp(words[i].word, wordInput) == 0) {
foundWordIndex = i;
break;
}
}
// 如果单词不存在,新建一个单词
if (foundWordIndex == -1) {
Word newWord;
strcpy(newWord.word, wordInput);
newWord.count = 1;
words[wordCount++] = newWord;
}
// 如果单词存在,单词次数加1
else {
words[foundWordIndex].count++;
}
}
// 按字典序排序
qsort(words, wordCount, sizeof(Word), wordCompare);
// 输出单词及其次数
for (int i = 0; i < wordCount; i++) {
printf("%s %d\n", words[i].word, words[i].count);
}
return 0;
}
阅读全文