时间限制: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. rp6818 和rp4418 重点修改的kernel几个问题!

    kernel\arch\arm\plat-s5p6818\drone\include文件下#define PAD_GPIOD1     (PAD_MODE_ALT | PAD_FUNC_ALT1 | ...

  2. POJ 1011:木棒

    传送门 http://poj.org/problem?id=1011 题目大意 已知原来有等长若干木棒,现在给你一堆断了的木棒的长度,问原来的木棒最短是多长 题目类型 DFS + 剪枝 + “贪心优化 ...

  3. LeetCode OJ--Reverse Nodes in k-Group **

    http://oj.leetcode.com/problems/reverse-nodes-in-k-group/  链表  指针 对链表翻转的变形 #include <iostream> ...

  4. facebook面试题【转】

    1. 给两个类A和Bclass A {public void foo (A a) { ...}}class B extends A {public void foo (B b) { ...}}问这么写 ...

  5. Linux下使用mv重命名文件或者移动文件(增强版的工具为rename)

    mv命令既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 例子:将文件A.txt重命名为B.txt mv ...

  6. 朱子奇- 精算师,Tailorwoods创始人 | 到「在行」来约见我

    朱子奇- 精算师,Tailorwoods创始人 | 到「在行」来约见我 Tailorwoods

  7. springboot多环境配置

    springboot多环境(dev.test.prod)配置 2017-07-17 10:33 1290人阅读 评论(0) 收藏 举报  分类: spring boot(6)  版权声明:本文为博主原 ...

  8. pycharm的todo和fixme标记,标志为今后再做和bug点

    使用方法,及查看方法: https://blog.csdn.net/xiemanR/article/details/73368440

  9. 转: linux下的自动对时

    转自: http://www.cnblogs.com/vimmer/archive/2012/05/17/2505785.html 评注:date 命令格式为: date -s 2012-08-02 ...

  10. Linux Distribution

    来自为知笔记(Wiz)