50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > 信息学奥赛一本通(1185:单词排序)

信息学奥赛一本通(1185:单词排序)

时间:2020-05-20 23:05:48

相关推荐

信息学奥赛一本通(1185:单词排序)

1185:单词排序

时间限制: 1000 ms 内存限制: 65536 KB

提交数: 11964 通过数: 6009

【题目描述】

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

【输入】

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

【输出】

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

【输入样例】

She wants to go to Peking University to study Chinese

【输出样例】

ChinesePekingSheUniversitygostudytowants

【参考代码】

#include <stdio.h>

#include <string.h>

char s[5001];

char a[100][51];

char t[51];

void cmpsort(int n)

{

int i,j;

for(i=1;i<n;i++)

{

for(j=i+1;j<=n;j++)

{

if(strcmp(a[i],a[j])>0)

{

strcpy(t,a[i]);

strcpy(a[i],a[j]);

strcpy(a[j],t);

}

}

}

}

int main()

{

int i,j,n=0,flag=0;

while(gets(s)!=NULL)

{

j=0;

for(i=0;s[i]!='\0';i++) //将单词分割存放到a数组中

{

if(s[i]!=' ')

{

if(flag==0) //单词开始

{

flag=1;

n++; //单词数量

a[n][j]=s[i];

j++;

}

else

{

a[n][j]=s[i];

j++;

}

}

else

{

flag=0;

j=0;

}

}

cmpsort(n);

for(i=1;i<=n;i++)

{

if(strcmp(a[i],a[i-1])==0)

continue;

printf("%s\n",a[i]);

}

}

return 0;

}

:8088/problem_show.php?pid=1185

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。