UVA 1593: Alignment of Code(模拟 Grade D)
2024-10-20 11:29:15
题意:
格式化代码。每个单词对齐,至少隔开一个空格。
思路:
模拟。求出每个单词最大长度,然后按行输出。
代码:
#include <cstdio>
#include <cstdlib>
#include <cstring> char words[][][];
int maxLen[]; char tmp[]; typedef char * pchar; int readStr(pchar &str, char *out) {
int num = ;
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 = ;
for (i = ; str[i]; i++) {
putchar(str[i]);
}
for (; i < len; i++) {
putchar(' ');
}
} int main() {
char *p;
int nowLine = ;
while (gets(tmp)) {
p = tmp;
int i = ;
while (readStr(p, words[nowLine][i]) != -) {
i++;
}
nowLine++;
} for (int i = ; i < nowLine; i++) {
for (int j = ; j < ; j++) {
if (strlen(words[i][j]) > maxLen[j]) {
maxLen[j] = strlen(words[i][j]);
}
}
} for (int i = ; i < nowLine; i++) {
for (int j = ; j < ; j++) {
if (strlen(words[i][j]) != ) {
if (j != ) printf(" ");
if (strlen(words[i][j+])) myprint(words[i][j], maxLen[j]);
else printf("%s", words[i][j]);
} else break;
}
printf("\n");
} return ;
}
最新文章
- DotNet 资源大全中文版【转】
- mysql connector 和 sqlserver ado.net 的区别
- linux shell 报错 Syntax error: Bad for loop variable
- Codeforces 733C:Epidemic in Monstropolis(暴力贪心)
- oracle常用命令总结
- 【回忆1314】回忆之placeholder
- 第九十八节,JavaScript语法、关键保留字及变量
- 开源纯C#工控网关+组态软件
- c# word文档与二进制数据的相互转换
- 20162328蔡文琛week06
- Linux下Apache服务的查看和启动
- minimun depth of binary tree
- Face The Right Way [POJ3276] [开关问题]
- seq2seq笔记
- HTML常用标签定义,用法及例子
- JVM总结(六):早期(编译期)优化
- shell 终端常用插件
- Django----ModelFrom
- 【Hadoop学习之十一】MapReduce案例分析三-PageRank
- C++解析七-重载运算符和重载函数