UVA10361 - Automatic Poetry

题目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1302

题目大意就是在<之后的字符串用二维数组存起来 一直到最后 输出的第一行就是把输入的<和>去掉然后输出 第二行 把省略号 用刚才存的数组代替 除了最后一个字符串 其它的都倒着输出 输完再把最后一个字符串输出。

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     int i, j, k1, k2, y, x, m, n, t,flag,k[101];
 6     char c1[1001],c2[1001], str[100][100];
 7     scanf("%d%*c", &t);
 8     while(t--)
 9     {
10         gets(c1);
11         gets(c2);
12         k1 = strlen(c1);
13         k2 = strlen(c2);
14         y = 0;
15         x = 0;
16         flag = 0;
17         for(i = 0  ; i < k1  ;i++)
18         {
19             if(c1[i]!='<'&&c1[i]!='>')
20             {    printf("%c", c1[i]);
21                 if(flag == 1)
22                 {
23                     str[y][x] = c1[i];
24                     x++;
25                 }    
26             }
27             if(flag == 1&&(c1[i]=='>'||c1[i] == '<'))
28             {
29                 str[y][x] = '\0';
30                 k[y] = x;
31                 
32                 y++;
33                 x = 0;
34             }
35             if(c1[i] == '<')
36             {
37                 flag = 1;                
38             }            
39         }
40         puts("");
41         str[y][x] = '\0';
42         k[y] = x;
43         for(i = 0  ;i < k2 ; i++)
44         {
45             if(c2[i]!='.')
46                 printf("%c", c2[i]);
47             else
48             {
49                 for(j = y-1 ; j >= 0  ; j--)
50                     for(n = 0 ; n < k[j] ; n++)
51                     printf("%c", str[j][n]);
52                 puts(str[y]);
53                 i = i+4;
54             }
55         }
56     }
57     return 0;
58 }

 

posted @ 2012-05-26 11:42  _雨  阅读(242)  评论(0编辑  收藏  举报