YTU.1317: 控制台表格

来源:互联网 发布:can数据帧的格式结构 编辑:程序博客网 时间:2024/05/29 14:11

1317: 控制台表格

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 45  Solved: 14
[Submit][Status][Web Board]

Description


画表格

在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)
+-------+------+
|abc    |xyz=tt|
+-------+------+
|hellomm|t2    |
+-------+------+

本题目要求设计一个程序,把用户输入的内容用这种“准表格”的方式展现出来。

Input

用户输入的第一行是一个整数,表示接下来有多少行信息。接下来的每行由若干单元组成。单元间用逗号分开。

Output

程序输出:用表格方式重新展现的输入内容。

Sample Input

3cat,dog,good-luck1,2,5do not use,,that

Sample Output

+----------+---+---------+|cat       |dog|good-luck|+----------+---+---------+|1         |2  |5        |+----------+---+---------+|do not use|   |that     |+----------+---+---------+

思路:

定义一个数组t[],然后记录对应列单词的最长长度。根据长度循环输出表格。
AC代码:
#include <stdio.h>#include <stdlib.h>int main(){    char ch[80][80];    int i,j,k;    int m,n;    int t[80]={0};//存储每列最长字符串的长度    scanf("%d",&n);    getchar();    int r;    int key;    int sign=0;//记录表格的列数    for(i=0;i<n;i++)    {        r=0;        sign=0;        gets(ch[i]);        j=0;        while(ch[i][j]!='\0')        {            if(ch[i][j]!=',')                r++;            else            {                    if(t[sign]<r)                    t[sign]=r;            r=0;            sign++;        }        j++;    }    if(t[sign]<r)        t[sign]=r;    sign++;    }    for(i=0;i<n;i++)    {        for(j=0;j<sign;j++)        {            printf("+");            for(k=0;k<t[j];k++)                printf("-");        }        printf("+\n");        j=0;        r=0;        for(m=0;m<sign;m++)        {            printf("|");        key=0;        while(ch[i][j]!=','&&ch[i][j]!='\0')        {            printf("%c",ch[i][j]);            j++;            key++;        }        for(k=0;k<t[r]-key;k++)        printf(" ");        r++;        j++;         }         printf("|\n");         }         for(j=0;j<sign;j++)//输出表格的最底界            {                printf("+");         for(k=0;k<t[j];k++)            printf("-");         }         printf("+\n");         return 0;         }




原创粉丝点击