排序检索-400 Unix ls
来源:互联网 发布:asp手机网站源码 编辑:程序博客网 时间:2024/06/05 03:17
题目大意:按顺序排列文件名,并按照规则输出。规则:1、以最长文件名的长度len为标准,最后一列文件名的所占长度为len,其他各列文件名长度为len+2;2、文件名从上到下排列,取最少行数。
图像解释:
解题过程:一次AC
正确代码:
# include <cstdio># include <cstdlib># include <cstring># include <ctype.h># include <string># include <cmath># include <sstream>//# define LOCALusing namespace std;char filename[100][60];int cmp(const void * a,const void *b){return strcmp(*(char(*)[60])a,*(char(*)[60])b);} int main(){# ifdef LOCALfreopen("in.txt","r",stdin);freopen("out.txt","w",stdout);#endifint n;//printf("kaishishuru\n");while(scanf("%d",&n)!=EOF){int len=0;int r=0;int c=0;for(int i=0;i<n;i++){scanf("%s",filename[i]);if(strlen(filename[i])>len) len=strlen(filename[i]);}qsort(filename,n,sizeof(filename[0]),cmp);//for(int i=0;i<n;i++) printf("%s ",filename[i]);//printf("\n%d",len);for(int i=0;i<60;i++){printf("-");}printf("\n");c=60/(len+2);int mod=60%(len+2);if(mod>=len) c++;r=ceil((double)n/c);for(int i=0;i<r;i++){for(int j=0;j<c;j++){int order=i+j*r;if(order<n){printf("%s",filename[order]);if(j==c-1){for(int k=0;k<len-strlen(filename[order]);k++) printf(" ");}else{for(int k=0;k<len+2-strlen(filename[order]);k++) printf(" ");}}}printf("\n");}}return 0;}
0 0
- 排序检索-400 Unix ls
- UVA 400 (暑假-排序、检索(2)-F- Unix ls)
- uva400 unix ls (字符串 排序)
- uva 400 Unix ls 文件输出排版 排序题
- UVa 400 Unix ls (字符串排序&规格化输出)
- UVa 400 Unix ls(排序+输出控制)
- UVa 400 - Unix ls
- uva 400 Unix ls
- UVA 400 - Unix ls
- 400 - Unix ls
- uva 400 - Unix ls
- uva-400-Unix ls
- 400 - Unix ls
- UVaOJ 400 - Unix ls
- UVa 400 - Unix ls
- 400 - Unix ls
- UVA 400 Unix ls
- UVa 400 - Unix ls
- 关于如何区分Android手机是32位还是64位
- File
- c++关键字
- 小试 scrapy
- ZZULIOJ 1883: 蛤玮当上主席
- 排序检索-400 Unix ls
- 关于post文件上传不能返回路径问题的解决方案
- BZOJ1327: The Rotation Game
- Android-onInterceptTouchEvent()和onTouchEvent()总结
- 你不知道的高性能JAVASCRIPT
- C++ - Vector 计算 均值(mean) 和 方差(variance)
- 目前比较全的CSS重设(reset)方法总结
- UVA 10047--The Monocycle
- apio2010特别行动队(斜率优化)