输入若干行。是若干个用空格间隔的单词(单词是连续的字母数字串)。其中有重复的单词。 输出若干行。每行两列,第一列是输入中出现过的单词,第二列是该单词出现的次数。要求输出次序符合第一列的增序次序。
时间: 2024-02-06 17:10:07 浏览: 58
可以使用 Python 中的字典来实现单词计数。遍历输入的每个单词,如果单词已经在字典中,则将该单词对应的计数器加一;否则,在字典中添加该单词,并将计数器初始化为 1。最后,按照字典键的升序输出每个单词及其计数器的值。
以下是一个 Python 代码示例:
```python
word_counts = {}
while True:
try:
words = input().split()
for word in words:
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
except EOFError:
break
for word in sorted(word_counts.keys()):
print(word, word_counts[word])
```
这个程序通过一个无限循环来读取输入,直到遇到文件结束符号(EOF)。输入的每一行被分割成单词,并逐个遍历。如果单词已经在字典中,则将其计数器加一;否则,将其添加到字典中,并将计数器初始化为 1。
最后,使用 `sorted` 函数按照字典键的升序对单词进行排序,并逐个输出单词及其计数器的值。
相关问题
二十一:用英文单词模拟数学计算 读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。 具体的输入输出格式规定如下: 输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为 "A + B = ",相邻两字符串有一个空格间隔。当A和B同时为zero时输入结束,相应的结果不要输出。 输出格式:对每个测试用例输出1行,即A+B的值。 输入样例: one + two = three four + five six = zero seven + eight nine = zero + zero = 输出样例: three nine zero nine six编程
抱歉,由于我是一名语言模型 AI,并不支持编程功能。以下是 Python3 代码实现供您参考:
```python
# 定义单词和数字对应的字典
word2num = {
'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4,
'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9
}
# 读入测试用例
while True:
line = input().strip() # 去掉空格
if line == 'zero + zero =': # 输入结束
break
a, b = line.split(' + ') # 分离 A 和 B
a = sum(word2num[w] * (10 ** (len(a.split()) - i - 1)) for i, w in enumerate(a.split())) # 将 A 转换为数字
b = sum(word2num[w] * (10 ** (len(b.split()) - i - 1)) for i, w in enumerate(b.split())) # 将 B 转换为数字
print(a + b) # 输出 A+B 的值
```
用c语言代码实现题目10:用英文单词模拟数学计算 读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。 具体的输入输出格式规定如下: 输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔。当A和B同时为zero时输入结束,相应的结果不要输出。 输出格式:对每个测试用例输出1行,即A + B的值。 输入样例: one + two = three four + five six = seven + eight nine = zero + zero = 输出样例: three nine zero nine six
```c
#include <stdio.h>
#include <string.h>
char* num[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int main() {
char a[10], b[10], c[10];
while (scanf("%s%s%s", a, b, c) == 3) {
if (!strcmp(a, "zero") && !strcmp(b, "zero")) break;
int sum = 0;
for (int i = 0; i < 10; i++) {
if (!strcmp(a, num[i])) sum += i;
if (!strcmp(b, num[i])) sum += i;
}
printf("%s\n", num[sum]);
}
return 0;
}
```
阅读全文