1. /*======================================================================
  2. 字符串排序
  3. 总时间限制: 1000ms 内存限制: 65536kB
  4. 描述
  5. 参考整数排序方法,设计一种为字符串排序的算法,将字符串从小到大输出
  6. 输入
  7. 第一行为测试数据组数t, 后面跟着t组数据。每组数据第一行是n,表示这组数据有n行字符串,接下来是要排序的n行字符串。每行字符串的字符个数不会大于200, n < 100。
  8. 输出
  9. 对于每组数据,输出排好序的字符串,每组输出后要多输出一个空行
  10. 样例输入
  11. 2
  12. 2
  13. Hello
  14. World
  15. 4
  16. I
  17. Love
  18. C
  19. Language!
  20. 样例输出
  21. Hello
  22. World
  23.  
  24. C
  25. I
  26. Language!
  27. Love
  28.  
  29. 思路:
    对t组数据的每一组,可以输入整组数据到二维的char数组(注意:二维的char数组的a[i]相当于第i行的首地址,所以可以gets(a[i]))
    输入一组数据后对其排序,可以考虑用任何一种排序,下面代码使用选择排序。
  30. ========================================================================*/
  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. int t,n;
  6. int k,i,j,m;
  7. char a[][],temp[];
  8. freopen("5.in","r",stdin);
  9. //freopen("result.out","w",stdout);
  10. scanf("%d",&t);
  11. for(k=;k<t;k++)
  12. {
  13. scanf("%d",&n);
  14. getchar();//接收上一行scanf的回车符
  15. for(i=;i<n;i++)
  16. gets(a[i]);//scanf("%s",a[i]);无法接收含有空格的字符串,所以这个题用scanf会Wrong Answer。
  17. //下面是选择排序
  18. for(i=;i<n-;i++)
  19. {
  20. m=i;
  21. for(j=i+;j<n;j++)
  22. {
  23. if(strcmp(a[j],a[m])<)
  24. {
  25. m=j;
  26. }
  27. }
  28. if(i!=m)//这里交换两行字符串
  29. {
  30. strcpy(temp,a[i]);
  31. strcpy(a[i],a[m]);
  32. strcpy(a[m],temp);
  33. }
  34. }
  35. //下面输出结果
  36. for(i=;i<n;i++)
  37. printf("%s\n",a[i]);
  38. if(k!=t-) printf("\n");/**/
  39. }
  40. return ;
  41. }

OpenJudge计算概论-字符串排序的更多相关文章

  1. Openjudge计算概论-DNA排序

    /*===================================== DNA排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给出一系列基因序列,由A,C,G,T四种字符组 ...

  2. OpenJudge计算概论-字符串最大跨距

    /*====================================================================== 字符串最大跨距 总时间限制: 1000ms 内存限制: ...

  3. OpenJudge计算概论-单词排序

    /*===================================== 单词排序 总时间限制:1000ms 内存限制: 65536kB 描述 输入一行单词序列,相邻单词之间由1个或多个空格间隔 ...

  4. OpenJudge计算概论-奇偶排序

    /*==============================================总时间限制: 1000ms 内存限制: 65536kB描述 输入十个整数,将十个整数按升序排列输出,并且 ...

  5. OpenJudge计算概论-取石子游戏

    OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...

  6. Openjudge计算概论——数组逆序重放【递归练习】

    /*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...

  7. OpenJudge计算概论-计算书费

    /*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...

  8. OpenJudge计算概论-最高的分数

    /*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...

  9. OpenJudge计算概论-求特殊自然数【枚举法】【将整数转成字符串】

    /*======================================================================== 求特殊自然数 总时间限制: 1000ms 内存限制 ...

随机推荐

  1. 在windows上搭建ftp服务

    在控制面板->程序和功能->打开或关闭Windows功能中开启ftp和IIS信息服务管理器 在控制面板->管理工具中打开Internet信息服务管理器->添加ftp站点 建好之 ...

  2. fibonacci数列(二)_矩阵快速幂

    描述 In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For exampl ...

  3. iOS平台XML解析类库对比和安装说明

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...

  4. CSS 实现:checkbox

    <div class="wrap"> <label>性别:</label> <div class="cb-wrap"& ...

  5. 【Sublime Text 3】插件

    TrailingSpacer 高亮显示多余的空格和Tab HTML-CSS-JS Prettify

  6. tensorflow0.8.0 安装配置

    参考官网:https://www.tensorflow.org/  Ubuntu15.10 + Eclipse Mars.2(4.5.2)官网最新 + Anaconda3-4.0.0 + Pydev4 ...

  7. github for windows 安装失败解决方案(亲测)

    早之前就有接触github,也在公司机子上装过,一路下来挺顺畅的.夏老师还纳闷他的机子装不上,我说,有鬼! 然而时隔一个月自己再来装,却在自己的本本上遇到鬼了. 然而网上论坛收了一堆,各种试.果断放弃 ...

  8. CUDA 程序中的同步

    前言 在并发,多线程环境下,同步是一个很重要的环节.同步即是指进程/线程之间的执行顺序约定. 本文将介绍如何通过共享内存机制实现块内多线程之间的同步. 至于块之间的同步,需要使用到 global me ...

  9. BAPI 使用

    BAPI_ACC_DOCUMENT_POST *---BAPI_ACC_DOCUMENT_POST 所需要的参数  DATA: OBJ_TYPE LIKE BAPIACHE09-OBJ_TYPE,   ...

  10. 148. Sort List

    Sort a linked list in O(n log n) time using constant space complexity. 代码如下: /** * Definition for si ...