嗜血魂K

导航

10361 Automatic Poetry

因该是这道题很简单缘故吧,我竟然调试好代码后,一次AC= =

我的思路就是读入之后,把...之前部分输出,然后再在前一行中找出2对'<' '>' 的位置,再接着输出

这道题有点纠结的就是再后一行中输出前一行中部分字符时,空格和\n的输出,糊里糊涂的发现:在之前输出后一行时把最后个空格也输出.s3部分最后也是带有空格的,原样输出即可.s部分同理,最后也是有\n的.

//因为读入数据有空格,所有用fgets整行读取
#include<stdio.h>
#include
<string.h>
const int maxn = 100;
int main()
{
#ifdef LOCAL
freopen(
"input.txt", "r", stdin);
#endif
int n, p[4];
char s1[maxn], s2[maxn];
scanf(
"%d", &n);
getchar();
while(n-- > 0)
{
int i, len, t;
fgets(s1, maxn, stdin);
fgets(s2, maxn, stdin);
//找出隔开符号的位置
for(i = 0,t = 0, len = strlen(s1); i < len; i++)
{
if(s1[i] == '<' || s1[i] == '>') p[t++] = i;
else printf("%c", s1[i]);
}
for(i = 0, len = strlen(s2)-4; i < len; i++) printf("%c", s2[i]);
//输出上文对应部分

for(i = p[2] + 1; i < p[3]; i++) printf("%c", s1[i]);
for(i = p[1] + 1; i < p[2]; i++) printf("%c", s1[i]);
for(i = p[0] + 1; i < p[1]; i++) printf("%c", s1[i]);
for(i = p[3] + 1; i < strlen(s1); i++) printf("%c", s1[i]);
}
return 0;
}

posted on 2011-07-20 22:29  嗜血魂K  阅读(160)  评论(0编辑  收藏  举报