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 }

 

你可能感兴趣的:(auto)