OpenJudge计算概论-单词排序
/*=====================================
单词排序
总时间限制:1000ms 内存限制: 65536kB
描述
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字母顺序输出这些单词(即按照字符串中字母的ASCII码排序,区分大小写,当首字母相同时,比较第2个字母,依次类推),要求重复的单词只输出一次。
输入
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。
输出
按字母顺序输出这些单词,重复的单词只输出一次。
样例输入
She wants to go to Peking University to study Chinese
样例输出
Chinese
Peking
She
University
go
study
to
wants 思路:
依次输入单词,用scanf函数即可。
每次输入一个单词后立即检查前面输入的所有单词当中是否含有该新出现的单词。若是没有则把它存到数组当中,否则忽略该新输入的单词。
输入所有单词后,对数组排序,排序时比较两个单词的方法用strcmp进行。
拍好序后输出所有单词即可。
======================================*/
#include<stdio.h>
#include<string.h>
int main()
{
int i,k;
char a[][],temp[];
int n;
int flag,j;
freopen("5.in","r",stdin);
k=;//表示现在为止已经往a数组放了k个单词
while(scanf("%s",temp)!=EOF)
{
flag=;//flag==1表示a数组没含有刚输入的单词temp[]
for(i=;i<k;i++)//检查a数组是否含有刚刚输入的单词temp[]
{
if(strcmp(a[i],temp)==)
{
flag=;//flag==0表示刚输入的单词temp[]已经包含在数组a里面
break;
}
}
if(flag==)
{
strcpy(a[k],temp);
k++;
}
}
//下面是对数组a做选择排序
n=k;
for(i=;i<n-;i++)
{
k=i;
for(j=i+;j<n;j++) //寻找a[i+1]~a[n-1]当中最小的元素并把它的下标记录到k里面。
if(strcmp(a[j],a[k])<)//if(a[j] < a[k])
k=j;
if(i!=k)
{
strcpy(temp,a[k]);
strcpy(a[k],a[i]);
strcpy(a[i],temp);
}
}
//下面输出排好序的a数组
for(i=;i<n;i++)
{
printf("%s\n",a[i]);
}
return ;
}
OpenJudge计算概论-单词排序的更多相关文章
- Openjudge计算概论-DNA排序
/*===================================== DNA排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给出一系列基因序列,由A,C,G,T四种字符组 ...
- Openjudge计算概论-单词翻转
/*===================================== 单词翻转 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个句子(一行),将句子中的每一个单词翻转后 ...
- OpenJudge计算概论-字符串排序
/*====================================================================== 字符串排序 总时间限制: 1000ms 内存限制: 6 ...
- OpenJudge计算概论-单词替换
/*====================================================================== 单词替换 总时间限制: 1000ms 内存限制: 65 ...
- OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】
/*================================================== 单词倒排 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一段英文 ...
- OpenJudge计算概论-奇偶排序
/*==============================================总时间限制: 1000ms 内存限制: 65536kB描述 输入十个整数,将十个整数按升序排列输出,并且 ...
- OpenJudge计算概论-取石子游戏
OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...
- Openjudge计算概论——数组逆序重放【递归练习】
/*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...
- OpenJudge计算概论-计算书费
/*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...
随机推荐
- 深入分析:Android中app之间的交互(二,使用ComponentName)
在前一篇相关主题的博文中我们了解了如何使用Action来启动当前应用之外的Activity处理我们的业务逻辑,在本篇笔记中我在简单介绍一下使用ComponentName来与当前应用之外的应用进行交互. ...
- 【Tsinghua OJ】范围查询(Range)问题
[问题描述]数轴上有n个点,对于任一闭区间 [a, b],试计算落在其内的点数. [输入]第一行包括两个整数:点的总数n,查询的次数m.第二行包含n个数,为各个点的坐标.以下m行,各包含两个整数:查询 ...
- Alice and Bob(不断补充)
我之前做过一些博弈的题目,以为博弈都是DP,结果被坑了很多次,其实博弈有很多种,在此,把我见过的类型都搬上来. 1,HDU3951(找规律) 题意:把n枚硬币围成一个圆,让Alice和Bob两个人分别 ...
- 4 Values whose Sum is 0_upper_bound&&ower_bound
Description The SUM problem can be formulated as follows: given four lists A, B, C, D of integer val ...
- 超链接访问过后hover样式就不出现的问题
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- iOS-UITableView性能优化
使用不透明视图. 不透明的视图可以极大地提高渲染的速度.因此如非必要,可以将table cell及其子视图的opaque属性设为YES(默认值).其中的特例包括背景色,它的alpha值应该为1 ...
- convert转化成特定日期格式
CONVERT() 函数可以用不同的格式显示日期/时间数据. CONVERT(data_type(length),data_to_be_converted,style) 例子: CONVERT(VAR ...
- HDU 1003 Max Sum(AC代码)
#include <stdio.h> int main(){ int i,t,j,n,x; int start,end,temp,max,sum; scanf("%d" ...
- yii表单
yii 的dropdownlist,用yii的session可以记下选中的状态 $form = $this->beginWidget('CActiveForm',array('action'= ...
- 我的Java后端书架2016年暮春3.0版(转)
书架主要针对Java后端开发. 3.0版把一些后来买的.看的书添补进来,又或删掉或降级一些后来没有再翻开过的书. 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可 ...