用结构体编写一程序,允许从键盘输入任意多个英语单词,中间用空格分开,输入0表示输入结束。该程序可以统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出,后面跟上该单词被输入的次数。 点击复制后,将打开C知道体验页
时间: 2023-05-19 15:04:17 浏览: 116
c程序的调试题,可以参考下
以下是用结构体编写的程序,可以实现从键盘输入任意多个英语单词,中间用空格分开,输入0表示输入结束。该程序可以统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出,后面跟上该单词被输入的次数。
```
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 1000
#define MAX_WORD_LEN 20
struct Word {
char word[MAX_WORD_LEN];
int count;
};
int main() {
struct Word words[MAX_WORDS];
int n = 0;
// 从键盘输入英语单词
printf("请输入英语单词,中间用空格分开,输入0表示输入结束:\n");
while (1) {
char word[MAX_WORD_LEN];
scanf("%s", word);
if (strcmp(word, "0") == 0) {
break;
}
// 统计单词出现次数
int found = 0;
for (int i = 0; i < n; i++) {
if (strcmp(words[i].word, word) == 0) {
words[i].count++;
found = 1;
break;
}
}
if (!found) {
strcpy(words[n].word, word);
words[n].count = 1;
n++;
}
}
// 按字典顺序输出单词及出现次数
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(words[i].word, words[j].word) > 0) {
struct Word temp = words[i];
words[i] = words[j];
words[j] = temp;
}
}
printf("%s %d\n", words[i].word, words[i].count);
}
return 0;
}
```
阅读全文