测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A41100. 单词排序

填空题 较难

题目描述

单词排序

题目描述

输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)

输入格式

一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。

输出格式

按字典序输出这些单词,重复的单词只输出一次。

样例输入

She  wants  to go to Peking University to study  Chinese

样例输出

Chinese
Peking
She
University
go
study
to
wants

参考答案

//字符串的排序(冒泡排序) #include <stdio.h> #include <string.h> int main() { int n = 0;//变量的声明与读入 char a[105][55] = {0}, b[55] = {0}; while (scanf("%s", b) != EOF) { strcpy(a[n], b); n++;//记录读入的字符串数量 } n--;//!=EOF多读了一个空字符串 for (int i = 0; i < n; i++)//冒泡排序 { for (int j = 0; j < n - i; j++) { if (strcmp(a[j], a[j + 1]) >= 0)//比较大小,strcmp()功能:字符串比较 { strcpy(b, a[j]);//swap strcpy()功能:将字符串从一个地方复制到另外一个地方 strcpy(a[j], a[j + 1]); strcpy(a[j + 1], b); } } } for (int i = 0; i <= n; i++) { if (strcmp(a[i], a[i + 1]) != 0)//相同字符串只输出一次 printf("%s\n", a[i]); } return 0; }
上一题 下一题