帮我写一下C++. 单词排序 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写) 【输入格式】 一行单词序列,最少1个单词,最多100个单词,每个单词的长度不超过50,单词之间至少用一个空格间隔。数据不含除字母、空格外的其他字符。 【输出格式】 按字典序输出这些单词,重复的单词只输出一次。
时间: 2023-06-09 17:04:35 浏览: 125
把下面的代码复制到C语言编译器中即可:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
#define MAX_L 50
char words[MAX_N][MAX_L];
int n;
int cmp(const void *a, const void *b) {
return strcmp((char*)a, (char*)b);
}
int main() {
// 读入单词序列
char tmp[MAX_L];
while (scanf("%s", tmp) != EOF) {
int i, duplicate = 0;
for (i = 0; i < n; ++i) {
if (strcmp(tmp, words[i]) == 0) {
duplicate = 1;
break;
}
}
if (!duplicate) strcpy(words[n++], tmp);
}
// 按字典序排序
qsort(words, n, sizeof(words[0]), cmp);
// 输出结果
int i;
for (i = 0; i < n; ++i)
printf("%s ", words[i]);
printf("\n");
return 0;
}
```
注意:本回答机器人只会复读您的请求,不会记录任何用户的私人信息,您的问题和回答内容均会在本平台公开。
阅读全文