Unix ls UVA 命令400

野性酷女 2024-02-17 18:48 130阅读 0赞

方法一:(用sort排序)(#include)

  1. #include
  2. #include
  3. #include
  4. #include
  5. using namespace std;
  6. const int maxn=105;
  7. string str[maxn];
  8. void print1(string s,int maxlen){ //在字符串后面加上空格以满足要求
  9. int len=maxlen-s.length();
  10. while(len—){
  11. s+=” “;
  12. }
  13. cout<<s;
  14. }
  15. int main(){

  16. int n;
  17. while(cin>>n){
  18. int maxlen=0;
  19. for(int i=0;i<n;i++){
  20. cin>>str[i];
  21. if(maxlen<str[i].length())maxlen=str[i].length();
  22. }
  23. printf(“——————————————————————————————\n”);
  24. sort(str,str+n);
  25. int coloum=(60-maxlen)/(maxlen+2)+1;
  26. int row=(n-1)/coloum+1;
  27. for(int i=0;i<row;i++){
  28. for(int j=i;j<coloum*row && j<n;j+=row){
  29. if(j==row*(coloum-1))print1(str[j],maxlen); //每行的最后一个字符串
  30. else print1(str[j],maxlen+2);
  31. }
  32. cout<<endl;
  33. }
  34. }
  35. return 0;
  36. }

方法二:(用去qsort排序)(位于库函数 #include)

  1. #include
  2. #include
  3. #include
  4. using namespace std;
  5. const int maxn=105;
  6. int cmp_str(const void *a,const void *b) //本题用qsort排序二维字符数组,故需要编写比较函数
  7. {
  8. return strcmp((char*)a,(char*)b);
  9. }
  10. void print1(const char * s,int maxlen){ //打印字符串,没达到长度则通过空格补充
  11. printf(“%s”,s);
  12. int len=maxlen-strlen(s);
  13. while(len—){
  14. printf(“ “);
  15. }
  16. }
  17. int main()
  18. {
  19. int n;
  20. while(scanf(“%d”,&n)==1){
  21. char str[maxn][65];
  22. int maxlen=0;
  23. for(int i=0;i<n;i++){
  24. scanf(“%s”,str[i]);
  25. if(maxlen<strlen(str[i]))maxlen=strlen(str[i]);
  26. }
  27. printf(“——————————————————————————————\n”);
  28. qsort(str, n, sizeof(str[0]), cmp_str);
  29. int coloum=(60-maxlen)/(maxlen+2)+1;
  30. int row=(n-1)/coloum+1;
  31. for(int i=0;i<row;i++){
  32. for(int j=i;j<coloum*row && j<n;j+=row){
  33. if(j==row*(coloum-1))print1(str[j],maxlen);
  34. else print1(str[j],maxlen+2);
  35. }
  36. printf(“\n”);
  37. }
  38. }
  39. return 0;
  40. }

注意:sort是qsort的升级版,能用sort就最好使用sort.

发表评论

表情:
评论列表 (有 0 条评论,130人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ls命令

    ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 

    相关 SSH命令ls命令

    使用 SSH 提供了许多可使用的选项。这篇文章会介绍一些我们在日常操作中经常使用的选项。 1. 无选项参数运行 SSH 通常使用 SSH 的方式就是不加任何选项参数

    相关 linux命令 ls

    命令的常用格式: 命令 【-选项】【-参数】 当有多个选项的时候可以将选项写在一起,没有顺序之分 如 : ls -l -a 可以写成 ls -la ls 查看目录列表

    相关 hadoop ls命令

    ls 使用方法:hadoop fs -ls <args> 如果是文件,则按照如下格式返回文件信息: 文件名 <副本数> 文件大小 修改日期 修改时间 权限 用户ID 组