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;
}
上一题
下一题