首页 > 代码库 > UVA 1593: Alignment of Code(模拟 Grade D)
UVA 1593: Alignment of Code(模拟 Grade D)
题意:
格式化代码。每个单词对齐,至少隔开一个空格。
思路:
模拟。求出每个单词最大长度,然后按行输出。
代码:
#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)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。