📄 1462s word crosses.cpp
字号:
#include<stdio.h>
char line[100];
char *p1,*p2,*p3,*p4;
char *c1,*c2,*c3;
int ap1,ap2,ap3,ap4,pnum;
int i,j;
int main()
{
gets(line);
pnum=1;
while (line[0]!='#')
{
for (c1=line; *c1==' '; c1++)
*c1=0;
p1=c1;
for (; *c1!=' '; c1++);
for (; *c1==' '; c1++)
*c1=0;
p2=c1;
for (; *c1!=' '; c1++);
for (; *c1==' '; c1++)
*c1=0;
p3=c1;
for (; *c1!=' '; c1++);
for (; *c1==' '; c1++)
*c1=0;
p4=c1;
for (; (*c1!=' ')&&*c1; c1++);
*c1=0;
for (c1=p1,c2=p2,ap1=ap2=0; (*c1!=*c2)&&(*c1); (*c1!=*c2) ? c1++, ap1++ : 0)
for (c2=p2,ap2=0; (*c1!=*c2)&&(*c2); c2++,ap2++);
for (c1=p3,c2=p4,ap3=ap4=0; (*c1!=*c2)&&(*c1); (*c1!=*c2) ? c1++, ap3++ : 0)
for (c2=p4,ap4=0; (*c1!=*c2)&&(*c2); c2++,ap4++);
if (pnum)
pnum=0;
else
printf("\n");
if (p1[ap1]&&p3[ap3])
{
for (i=((ap2>ap4)?-ap2:-ap4); i<0; i++)
{
for (j=0; j<ap1; j++) printf(" ");
if (ap2+i>=0) printf("%c",p2[ap2+i]); else printf(" ");
if (ap4+i>=0)
{
for (c1=&p1[ap1+1]; *c1; c1++) printf(" ");
printf(" ");
for (j=0; j<ap3; j++) printf(" ");
printf("%c",p4[ap4+i]);
}
printf("\n");
}
printf("%s %s\n",p1,p3);
for (c1=&p2[ap2+1],c2=&p4[ap4+1]; *c1||*c2;)
{
for (j=0; j<ap1; j++) printf(" ");
if (*c1) printf("%c",*(c1++)); else printf(" ");
if (*c2)
{
for (c3=&p1[ap1+1]; *c3; c3++) printf(" ");
printf(" ");
for (j=0; j<ap3; j++) printf(" ");
printf("%c",*(c2++));
}
printf("\n");
}
}
else
printf("Unable to make two crosses\n");
gets(line);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -