时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:1559

解决:807

题目描述:

先输入你要输入的字符串的个数。然后换行输入该组字符串。每个字符串以回车结束,每个字符串少于一百个字符。

如果在输入过程中输入的一个字符串为“stop”,也结束输入。

然后将这输入的该组字符串按每个字符串的长度,由小到大排序,按排序结果输出字符串。

输入:

字符串的个数,以及该组字符串。每个字符串以‘\n’结束。如果输入字符串为“stop”,也结束输入.

输出:

可能有多组测试数据,对于每组数据,

将输入的所有字符串按长度由小到大排序输出(如果有“stop”,不输出“stop”)。

样例输入:
5
sky is grey
cold
very cold
stop
3
it is good enough to be proud of
good
it is quite good
样例输出:
cold
very cold
sky is grey
good
it is quite good
it is good enough to be proud of
提示:

根据输入的字符串个数来动态分配存储空间(采用new()函数)。每个字符串会少于100个字符。

测试数据有多组,注意使用while()循环输入。

来源:
2008年北京大学软件所计算机研究生机试真题

思路:

直接冒泡排序或快速排序即可。

更优的解法:设一个字符串指针数组,分别指向各字符串,对该指针数组排序,效率更高。

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h> int main(void)
{
char s[100][100];
char tmpn[80], tmps[100];
int i, j, n; while (gets(tmpn))
{
n = atoi(tmpn); for (i=0; i<n; i++)
{
gets(s[i]);
if (strcmp(s[i], "stop") == 0)
break;
}
n = i; for (i=0; i<n-1; i++)
{
for (j=0; j<n-1-i; j++)
{
if (strlen(s[j]) > strlen(s[j+1]))
{
strcpy(tmps, s[j]);
strcpy(s[j], s[j+1]);
strcpy(s[j+1], tmps);
}
}
} for (i=0; i<n; i++)
printf("%s\n", s[i]);
} return 0;
}
/**************************************************************
Problem: 1135
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:916 kb
****************************************************************/

九度OJ 1135:字符串排序 (排序)的更多相关文章

  1. 九度OJ 1066 字符串排序

    题目地址:http://ac.jobdu.com/problem.php?pid=1066 题目描述: 输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出 ...

  2. 九度OJ 1061:成绩排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:17158 解决:4798 题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相 ...

  3. 九度OJ 1023:EXCEL排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:14605 解决:3307 题目描述:     Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能.     对每个测试用例 ...

  4. 九度OJ 1130:日志排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1265 解决:303 题目描述: 有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录: "hs ...

  5. 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找

    题目地址:http://ac.jobdu.com/problem.php?pid=1349 题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数 ...

  6. 九度OJ 1196:成绩排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4339 解决:1476 题目描述: 用一维数组存储学号和成绩,然后,按成绩排序输出. 输入: 输入第一行包括一个整数N(1<=N< ...

  7. 九度OJ 1185:特殊排序 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:15588 解决:3592 题目描述: 输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序. 输入: 输入第一行包括1个整数N,1< ...

  8. 九度oj 题目1202:排序

    题目1202:排序 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:28802 解决:9408 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n ...

  9. 九度oj 1349 数字在排序数组中出现的次数

    原题链接:http://ac.jobdu.com/problem.php?pid=1349 二分.. #include<algorithm> #include<iostream> ...

随机推荐

  1. 标准C程序设计七---105

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  2. JSONP简单示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head>    < ...

  3. Python内置函数和匿名函数

    内容回顾: 1.列表推导式 [变量(加工后的变量) for 变量 in iterable] 循环模式 [变量(加工后的变量) for 变量 in iterable if 条件] 筛选模式 生成器表达式 ...

  4. js-斐波那切数列

    f(1) = 1; f(2) = 1; f(3) = f(1) + f(2) = 2; f(4) = f(3) + f(2) = 3; f(5) = f(4) + f(3) = 5; f(6) = f ...

  5. html --- rem

    // rem (function(doc, win) {       var docEle = doc.documentElement,         evt = "onorientati ...

  6. js遍历map匹配数据和js遍历数组匹配map数据

    var __LocalDataCities = { list: { "010": ["北京", "BEIJING"], "0100 ...

  7. Codeforces 629 A. Far Relative’s Birthday Cake

      A. Far Relative’s Birthday Cake   time limit per test 1 second memory limit per test 256 megabytes ...

  8. 关于编写Windows程序中启动兼容性问题

    之前用qt4编写Windows程序的时候遇到了一个软件在系统的兼容性问题:用户在win10系统下使用这个程序的时候,如果没有用低于win10版本的兼容模式运行的时候,存在运行某部分功能的时候无法使用的 ...

  9. 数字类型(NSInteger,NSUInteger,NSNumber)

    在Objective-C中,我们可以使用c中的数字数据类型,int.float.long等.它们都是基本数据类型,而不是对象.也就是说,不能够向它们发送消息.然后,有些时候需要将这些值作为对象使用. ...

  10. 低成本安全硬件(二):RFID on PN532

    引言 鉴于硬件安全对于大多数新人是较少接触的,而这方面又非常吸引我,但是部分专业安全研究设备较高的价格使人望而却步.在该系列中,笔者希望对此感兴趣的读者在花费较少金钱的情况下体会到硬件安全的魅力所在. ...