/*=====================================
单词排序
总时间限制: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 描述 下面是一个图书的单价表: 计算 ...
随机推荐
-
[转] 微软源代码管理工具TFS2013安装与使用详细图文教程(Vs2013)
这篇文章联合软件小编主要介绍了微软源代码管理工具TFS2013安装与使用图文教程,本文详细的给出了TFS2013的安装配置过程.使用教程,需要的朋友可以参考下 最近公司新开发一个项目要用微软的TFS2 ...
-
设置MySQL允许外网访问
1:设置mysql的配置文件 /etc/mysql/my.cnf 找到 bind-address =127.0.0.1 将其注释掉://作用是使得不再只允许本地访问: 重启 ...
-
python面向对象
1.概念 类:(class):具有相同属性和方法的对象的集合.用来定义该集合中每个对象所共有的属性和方法.对象是类的实例. 方法:类中定义的函数. 实例化:创建一个类的实例,类的具体对象. 对象:通过 ...
-
VMware12版虚拟机怎么安装win7系统
工具/原料 VMware workstation 12 windows7镜像ios系统文件 链接:http://pan.baidu.com/s/1c0YrDgG 密码:vna1 建立一个新的虚拟机 ...
-
redis 多数据库
一台服务器上都快开启200个redis实例了,看着就崩溃了.这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开. 那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的 ...
-
swift 类 结构体 作为参数 以及可变参数
Class class Person{ var age = 22, name = "frank" func growolder() { self.age++ //++ 要跟住 不要 ...
-
(Android) Download Images by AsyncTask API
1. Check network status AndroidManifest.xml <uses-sdk> ... </> <uses-permission andro ...
-
SimpleDateFormat解析的时候字符串过长问题
竟然不会报错: try { SimpleDateFormat dateFormatFrom = new SimpleDateFormat("yyyyMMddHHmmss"); St ...
-
Loadrunner 11在win7录制中失败“the recording of the application was terminated by windows due to window data execution prevention feature";
在录制过程中遇到如下问题: 查了下如何Enable, Disable Data Execution Prevention (DEP) in Windows 10/8/7 (http://www.the ...
-
CentOS 7 最小安装网络配置
通常最小安装是没有自动启动网络连接的,可以通过ifconfig或ip addr查看网络信息 (类似windows里的ipconfig),然而最小安装是没有ifconfig命令的, 这里我们使用ip a ...