📄 2389599_ac_0ms_108k.c
字号:
#include <stdio.h>
#include <string.h>
char ali[80];
char item[80];
int len[80];
int n, no;
typedef struct Node
{
char str[80];
}Str;
struct node
{
Str str[80];
}con[80];
void input()
{
int i, j, L, k, t, tt;
int sum, end, max;
char tmp[80], tali[80];
scanf("%s",ali);
getchar();
end = 0;
while(1)
{
if(end)
return ;
no = 1;sum = 0;
n = strlen(ali);
gets(item);
t = n-1;
for(i = strlen(item)-1; i >= 0; i--)
if(item[i]=='&')
{
strcpy(con[0].str[t--].str,&item[i+1]);
item[i] = '\0';
}
strcpy(con[0].str[0].str,item);
while(gets(tmp)!=NULL)
{
if(tmp[0]=='*')
{
end = 1;
break;
}
if(tmp[0]=='='||tmp[0]=='<'||tmp[0]=='>')
{
strcpy(tali,tmp);
break;
}
t = n - 1;
for(i = strlen(tmp)-1; i >= 0; i--)
if(tmp[i]=='&')
{
strcpy(con[no].str[t--].str,&tmp[i+1]);
tmp[i] = '\0';
}
strcpy(con[no].str[0].str,tmp);
no++;
}
for(i = 0; i < n; i++)
{
max = -1;
for(j = 0; j < no; j++)
{
L = strlen(con[j].str[i].str);
if(L>max)
max = L;
}
len[i] = max;
sum += max;
}
sum += n*3-1;
printf("@");
for(i = 0; i < sum; i++)
printf("-");
printf("@\n");
for(i = 0; i < no; i++)
{
printf("|");
for(j = 0; j < n; j++)
{
tt = strlen(con[i].str[j].str);
printf(" ");
if(ali[j]=='>')
{
for(k = 0; k < len[j]-tt; k++)
printf(" ");
printf("%s",con[i].str[j].str);
}
else
if(ali[j]=='<')
{
printf("%s",con[i].str[j].str);
for(k = 0; k < len[j]-tt; k++)
printf(" ");
}
else
{
for(k = 0; k < (len[j]-tt)/2; k++)
printf(" ");
printf("%s",con[i].str[j].str);
for(k = 0; k < (len[j]-tt+1)/2; k++)
printf(" ");
}
printf(" |");
}
printf("\n");
if(!i)
{
printf("|");
for(i = 0; i < n; i++)
{
for(j = 0; j < len[i]+2; j++)
printf("-");
if(i!=n-1)
printf("+");
}
printf("|\n");
i = 0;
}
}
printf("@");
for(i = 0; i < sum; i++)
printf("-");
printf("@\n");
strcpy(ali,tali);
}
}
int main()
{
input();
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -