zoukankan      html  css  js  c++  java
  • uva 400 Unix ls 文件输出排版 排序题

    这题的需要注意的地方就是计算行数与列数,以及输出的控制。

    题目要求每一列都要有能够容纳最长文件名的空间,两列之间要留两个空格,每一行不能超过60。

    简单计算下即可。

    输出时我用循环输出空格来解决对齐的,其实可以用一个很巧妙的方法,用printf("%-*s", k, file[i]),查过资料后发现*放到转换字符之间可以当作替代符,后面可以输入一个变量(如k)来控制,这句代码意思是输出左对齐(对应负号)的宽度为k(对应*)的字符串file[i]。

    代码:

    #include <cstdio>
    #include <iostream>
    #include <cmath>
    #include <string>
    #include <algorithm>
    using namespace std;
    const int maxn = 101;
    int n;
    
    int main() {
    	string file[maxn];
    	int cmax;
    	while (scanf("%d", &n) != EOF) {
    		printf("------------------------------------------------------------
    ");
    		cmax = 0;
    		for (int i = 0; i < n; i++) {
    			cin >> file[i];
    			cmax = max(cmax, (int)file[i].size());
    		}
    		int col = 62 / (cmax + 2);
    		int row = ceil(1.0 * n / col);
    		sort (file, file + n);
    		for (int i = 0; i < row; i++) {
    			for (int j = 0; j < col; j++) {
    				//	printf("%s", file[i * row + j]);
    				int t = j * row + i;
    				if (t >= n)
    					continue;
    				cout << file[t];
    				int k = cmax - file[t].size();
    				while (k--)
    					printf(" ");
    				if (j != col - 1)
    					printf("  ");
    			}
    			if (i <= row - 1)
    				printf("
    ");
    		}
    	}
    	return 0;
    }


  • 相关阅读:
    Python TCP服务器
    Python TCP客户端
    链接测试工具xenu link sleuth的使用
    nodejs & nodemailer
    node socket.io web
    簡單的爬蟲 二 ಥ_ಥ 爬一爬 一個博客的每篇文件的標題
    簡單的爬蟲 一 ಥ_ಥ(就是一個頁面)
    兩端對齊
    appframework(jqmobi) 3.0 设置
    sass mapsource --->gulp
  • 原文地址:https://www.cnblogs.com/java20130723/p/3212093.html
Copyright © 2011-2022 走看看