UVA 400 Unix ls
2015-07-26 20:37
302 查看
题目
Unix的ls命令分析
屏幕宽度60,每列间距2,逐列打满,关键在于列数和行数的计算,详见代码 : )代码
#include <stdio.h> #include <stdlib.h> #include <string.h> int cmp(const void* a, const void* b) { return strcmp((char*)a, (char*)b); } int main(void) { char name[105][65]; int n, i, j, k, max_len, c, w, t; while (scanf("%d", &n) != EOF) { max_len = 0; for (i = 0; i < n; i++) { scanf("%s", &name[i]); max_len = max_len < strlen(name[i])? strlen(name[i]): max_len; } c = (60 - max_len) / (max_len + 2) + 1; w = (n - 1) / c + 1; qsort(name, n, sizeof(name[0]), cmp); printf("------------------------------------------------------------\n"); for (i = 0; i < w; i++) { for (j = 0; j < c; j++) { if (j*w+i < n) { printf("%s", name[j*w+i]); if (j != c-1) t = max_len + 1; else t = max_len - 1; for (k = strlen(name[j*w+i])-1; k < t; k++) printf(" "); } } printf("\n"); } } return 0; }
相关文章推荐
- windows 下 redis 安装
- Uva 12436 Rip Van Winkle's Code
- 一个答案不唯一的数独问题
- UVa439(BFS最短路实现)
- HDU 3023 Dirt 踩黑白块
- mysql服务启动、停止、重启
- 八大排序总结
- UVa439(DFS实现)
- 【数据结构】1、串的模式匹配算法
- 算法学习笔记——贪婪
- SQL基础学习_04_视图
- 命令别名alias设置
- Java 设计模式—装饰者模式
- (_)snprintf跨平台测试
- hdu 5130 && BestCoder 1st Anniversary 1001
- java socket编程
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记39 Alert&ActionSheet
- Linux命令学习手册-tr命令
- Java设计模式偷跑系列(21)建模和实现享受metapatterns
- Linux命令学习手册-tr命令 2015-07-26 20:35 9人阅读 评论(0) 收藏