首页 > 其他 > 详细

练习场hit1011:UNIX ls(有的二货罗马也用不着去debug了)

时间:2014-03-10 23:45:20      阅读:629      评论:0      收藏:0      [点我收藏+]

题目:

  输入一串文件名字,排序后格式化输出

 

思路:

  排序后格式化输出

 

方案:

  排序后格式化输出

 

代码:

bubuko.com,布布扣
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 #define MAX 100
 6 #define NAME_LEN 60
 7 
 8 void SortFile(char **file_name,int n);
 9 int comp(const void *a,const void *b);
10 
11 int main()
12 {
13     int n,i,len;
14     char **file_name=(char **)malloc(sizeof(char *)*MAX);
15     for(i=0;i<=MAX-1;++i)
16         file_name[i]=(char *)malloc(NAME_LEN);
17 
18     while(scanf("%d",&n)!=EOF)
19     {
20         for(i=0;i<=n-1;++i)
21         {
22             memset(file_name[i],0,NAME_LEN);
23             gets(file_name[i]);
24             if(strlen(file_name[i])==0)
25                 --i;
26         }
27 
28         SortFile(file_name,n);
29     }
30     return 0;
31 }
32 
33 void SortFile(char **file_name,int n)
34 {
35     qsort(file_name,n,sizeof(char *),comp);
36     
37     int i,max_len=strlen(file_name[0]);
38     for(i=1;i<=n-1;++i)
39         if(strlen(file_name[i])>max_len)
40             max_len=strlen(file_name[i]);
41     int c_cnt=62/(max_len+2);
42     int r_cnt;
43     if(n%c_cnt==0)
44         r_cnt=n/c_cnt;
45     else
46         r_cnt=n/c_cnt+1;
47     
48     printf("------------------------------------------------------------\n");
49     int r_cur,c_cur;
50     for(r_cur=0;r_cur<=r_cnt-1;++r_cur)
51     {
52         for(c_cur=0;c_cur<=c_cnt-1;++c_cur)
53             if(r_cnt*c_cur+r_cur<=n-1)
54             {
55                 printf("%s",file_name[r_cnt*c_cur+r_cur]);
56                 if(r_cnt*(c_cur+1)+r_cur<=n-1)
57                     for(i=strlen(file_name[r_cnt*c_cur+r_cur])-1;i<=max_len;++i)
58                         printf(" ");
59             }
60 
61             printf("\n");
62     }
63 }
64 
65 int comp(const void *a,const void *b)
66 {
67     return strcmp(*(const char **)a,*(const char **)b);
68 }
bubuko.com,布布扣

 

备注:

  pe一生黑。懒得管了,没啥技术含量,纠结于pe没用,pass。

练习场hit1011:UNIX ls(有的二货罗马也用不着去debug了),布布扣,bubuko.com

练习场hit1011:UNIX ls(有的二货罗马也用不着去debug了)

原文:http://www.cnblogs.com/keepcalmandcarryon/p/3592633.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!