OpenJudge计算概论-字符串排序
/*======================================================================
字符串排序
总时间限制: 1000ms 内存限制: 65536kB
描述
参考整数排序方法,设计一种为字符串排序的算法,将字符串从小到大输出
输入
第一行为测试数据组数t, 后面跟着t组数据。每组数据第一行是n,表示这组数据有n行字符串,接下来是要排序的n行字符串。每行字符串的字符个数不会大于200, n < 100。
输出
对于每组数据,输出排好序的字符串,每组输出后要多输出一个空行
样例输入
2
2
Hello
World
4
I
Love
C
Language!
样例输出
Hello
World C
I
Language!
Love 思路:
对t组数据的每一组,可以输入整组数据到二维的char数组(注意:二维的char数组的a[i]相当于第i行的首地址,所以可以gets(a[i]))
输入一组数据后对其排序,可以考虑用任何一种排序,下面代码使用选择排序。
========================================================================*/
#include<stdio.h>
#include<string.h>
int main()
{
int t,n;
int k,i,j,m;
char a[][],temp[];
freopen("5.in","r",stdin);
//freopen("result.out","w",stdout);
scanf("%d",&t);
for(k=;k<t;k++)
{
scanf("%d",&n);
getchar();//接收上一行scanf的回车符
for(i=;i<n;i++)
gets(a[i]);//scanf("%s",a[i]);无法接收含有空格的字符串,所以这个题用scanf会Wrong Answer。
//下面是选择排序
for(i=;i<n-;i++)
{
m=i;
for(j=i+;j<n;j++)
{
if(strcmp(a[j],a[m])<)
{
m=j;
}
}
if(i!=m)//这里交换两行字符串
{
strcpy(temp,a[i]);
strcpy(a[i],a[m]);
strcpy(a[m],temp);
}
}
//下面输出结果
for(i=;i<n;i++)
printf("%s\n",a[i]);
if(k!=t-) printf("\n");/**/
}
return ;
}
OpenJudge计算概论-字符串排序的更多相关文章
- Openjudge计算概论-DNA排序
/*===================================== DNA排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给出一系列基因序列,由A,C,G,T四种字符组 ...
- OpenJudge计算概论-字符串最大跨距
/*====================================================================== 字符串最大跨距 总时间限制: 1000ms 内存限制: ...
- OpenJudge计算概论-单词排序
/*===================================== 单词排序 总时间限制:1000ms 内存限制: 65536kB 描述 输入一行单词序列,相邻单词之间由1个或多个空格间隔 ...
- OpenJudge计算概论-奇偶排序
/*==============================================总时间限制: 1000ms 内存限制: 65536kB描述 输入十个整数,将十个整数按升序排列输出,并且 ...
- OpenJudge计算概论-取石子游戏
OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...
- Openjudge计算概论——数组逆序重放【递归练习】
/*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...
- OpenJudge计算概论-计算书费
/*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...
- OpenJudge计算概论-最高的分数
/*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...
- OpenJudge计算概论-求特殊自然数【枚举法】【将整数转成字符串】
/*======================================================================== 求特殊自然数 总时间限制: 1000ms 内存限制 ...
随机推荐
- 深入分析:Android中app之间的交互(二,使用ComponentName)
在前一篇相关主题的博文中我们了解了如何使用Action来启动当前应用之外的Activity处理我们的业务逻辑,在本篇笔记中我在简单介绍一下使用ComponentName来与当前应用之外的应用进行交互. ...
- html释疑
解析<button>和<input type="button"> 的区别(转) 一.定义和用法 <button> 标签定义的是一个按钮. 在 b ...
- Day05_JAVA语言基础第五天
1.函数(掌握) 1.概念(掌握) 定义在类中,有特定功能的一小段程序 2.格式(掌握) 修饰符 返回类型 函数名(参数类型 形式参数,...){ 函数体: return 返回值; } 解释: A 修 ...
- HDU 5748 最长上升子序列的长度nlogn(固定尾部)
Bellovin Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- POJ 1860 Currency Exchange (最短路)
Currency Exchange Time Limit : 2000/1000ms (Java/Other) Memory Limit : 60000/30000K (Java/Other) T ...
- POJ 2253 Frogger
题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- 2015GitWebRTC编译实录4
2015.07.17 libg711 编译通过[422/1600 ] CC obj /webrtc/modules/audio_coding/codecs/g711/g711.g711.o[423/1 ...
- Matlab优化存储器读写来改善程序性能
最近用Matlab写程序的时候终于遇到了程序执行效率的问题,于是在Google上面搜索了一篇提高代码性能的文章,简单的概括一下. 文章是通过优化寄存器读写来提高执行速度的,主要体现在三个方面: 在做循 ...
- 第一课 T语言关键字(版本TC5.0)
关键字 TC综合开发工具的语法里包含了大量的关键字,而且对TC综合开发工具支持的关键字都做了亮色处理,以便大家在写脚本的时候容易区分. 关键字在使用的时候,都有特定的作用,不能作为变量名.函数名等等使 ...
- Codeforces Round #124 (Div. 2)
A. Plate Game 如果可以放置一个圆的情况下,先手将圆放置在矩形正中心,那么根据对称性,先手只要放后手的对称的位置即可,也就是先手必胜,否则后手胜. B. Limit 讨论\(n,m\)的大 ...