题目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1302
题目大意就是在<之后的字符串用二维数组存起来 一直到最后 输出的第一行就是把输入的<和>去掉然后输出 第二行 把省略号 用刚才存的数组代替 除了最后一个字符串 其它的都倒着输出 输完再把最后一个字符串输出。

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 }