用户输入一个表格的文本,请按如下格式输出:
1. 用'-'表示横线,'|'表示竖线,'+'表示横竖线的交点 2. 列宽为当前列最长字符串长度+2 3. 每列的对齐方式相同,一共有三种,分别为靠左对齐,居中对齐,靠右对齐,分别用'l','c','r'表示。 a. 靠左对齐,字符串左端距离边线1个空格;b. 居中对齐,字符串距离边线左和右空格数的差不超过1,且左边空格数小于等于右边空格数。c. 靠右对齐,字符串右端距离边线1个空格;
第一行是一个整数T(1≤T≤100) , 表示样例的个数。
每个样例的第1行是两个整数r,c(1≤r,c≤10),表示表格的行和列数。
第2行是c个字符,字符只由'l','c','r'三种组成,依次表示对应列的对齐方式。
以后的r行,每行c个字符串,表示对应行列的单元格内容,字符串只含英文字母,数字,长度不超过20个字符。
按格式依次输出每个样例的的结果。
1 3 5 lcccr Name English Math Chinese Total Alice 100 85 75 260 Bob 85 100 85 270
+-------+---------+------+---------+-------+ | Name | English | Math | Chinese | Total | +-------+---------+------+---------+-------+ | Alice | 100 | 85 | 75 | 260 | +-------+---------+------+---------+-------+ | Bob | 85 | 100 | 85 | 270 | +-------+---------+------+---------+-------+
最近在优化以前写的代码,发现曾经做过的题再写一次也还是会有不少问题。。。
回到这道题上来,这道题核心就是拿一个开一个三维数组来存单词
其他打印表格部分用函数来控制。这道题我重新优化做了一次后竟然犯了以前没犯的错,忘记初始化了,卡了一段时间。。
#include
#include
char p[22][22][22] = {0};
int maxlen[22] ={0};
int vis[22] = {0};
int lenarr[22][22] ={0};
void prfplus(){printf("+");
}
void prfjian(int len){prfplus();for(int i = 0;i=maxlen[j]){maxlen[j] = len;}}}for(int i = 0;i