码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 1593: Alignment of Code(模拟 Grade D)

时间:2014-10-17 20:30:04      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   for   sp   div   log   

题意:

格式化代码。每个单词对齐,至少隔开一个空格。

思路:

模拟。求出每个单词最大长度,然后按行输出。

代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>

char words[1200][190][90];
int maxLen[190];

char tmp[200];

typedef char * pchar;

int readStr(pchar &str, char *out) {
    int num = 0;
    int ret = sscanf(str, "%s%n", out, &num);
    //printf("str = %s\n", str);
    str += num;
    return ret;
}

void myprint(char *str, int len) {
    int i = 0;
    for (i = 0; str[i]; i++) {
        putchar(str[i]);
    }
    for (; i < len; i++) {
        putchar( );
    }
}

int main() {
    char *p;
    int nowLine = 0;
    while (gets(tmp)) {
        p = tmp;
        int i = 0;
        while (readStr(p, words[nowLine][i]) != -1) {
            i++;
        }
        nowLine++;
    }

    for (int i = 0; i < nowLine; i++) {
        for (int j = 0; j < 185; j++) {
            if (strlen(words[i][j]) > maxLen[j]) {
                maxLen[j] = strlen(words[i][j]);
            }
        }
    }

    for (int i = 0; i < nowLine; i++) {
        for (int j = 0; j < 185; j++) {
            if (strlen(words[i][j]) != 0) {
                if (j != 0) printf(" ");
                if (strlen(words[i][j+1])) myprint(words[i][j], maxLen[j]);
                else printf("%s", words[i][j]);
            } else break;
        }
        printf("\n");
    }

    return 0;
}

 

UVA 1593: Alignment of Code(模拟 Grade D)

标签:style   blog   color   io   ar   for   sp   div   log   

原文地址:http://www.cnblogs.com/shinecheng/p/4031958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!