UVA 401 - Palindromes (字符串)

题目链接

无语+ 无奈 10+的错误,看不懂的题意,不懂为何会AC,为神马删了对O和0的判断就AC。。。真受不了。。。

 1 #include <stdio.h>
 2 #include <string.h>
 3 int main()
 4 {
 5     int i,j,len,x,y;
 6     char p[1000],o[1000];
 7     while(gets(p))
 8     {
 9         x = y = 1;
10         len = strlen(p);
11         for(i = 0; i <= len-1; i ++)
12         {
13             if(p[i] != p[len-i-1])
14             {
15                 x=0;
16                 break;
17             }
18         }
19         for(i = 0; i <= len-1; i ++)
20         {
21             if(p[i] == 'A')
22                 o[i] = 'A';
23             else if(p[i] == 'E')
24                 o[i] = '3';
25             else if(p[i] == 'H')
26                 o[i] = 'H';
27             else if(p[i] == 'I')
28                 o[i] = 'I';
29             else if(p[i] == 'J')
30                 o[i] = 'L';
31             else if(p[i] == 'L')
32                 o[i] = 'J';
33             else if(p[i] == 'M')
34                 o[i] = 'M';
35             else if(p[i]=='S')
36                 o[i] = '2';
37             else if(p[i] == 'T')
38                 o[i] = 'T';
39             else if(p[i] == 'U')
40                 o[i] = 'U';
41             else if(p[i] == 'V')
42                 o[i] = 'V';
43             else if(p[i] == 'W')
44                 o[i] = 'W';
45             else if(p[i] == 'X')
46                 o[i] = 'X';
47             else if(p[i] == 'Y')
48                 o[i] = 'Y';
49             else if(p[i] == 'Z')
50                 o[i] = '5';
51             else if(p[i] == '1')
52                 o[i] = '1';
53             else if(p[i] == '2')
54                 o[i] = 'S';
55             else if(p[i] == '3')
56                 o[i] = 'E';
57             else if(p[i] == '5')
58                 o[i] = 'Z';
59             else if(p[i] == '8')
60                 o[i] = '8';
61             else if(p[i] =='O')
62                 o[i] = 'O';
63             else if(p[i]=='0')
64                 o[i] = '0';
65             else
66             {
67                 y = 0;
68             }
69             if(o[i] == p[len-i-1])
70             ;
71             else
72             {
73                 y = 0;
74                 break;
75             }
76         }
77         if(x&&y)
78             printf("%s -- is a mirrored palindrome.\n",p);
79         else if(!x&&y)
80             printf("%s -- is a mirrored string.\n",p);
81         else if(x&&!y)
82             printf("%s -- is a regular palindrome.\n",p);
83         else if(!x&&!y)
84             printf("%s -- is not a palindrome.\n",p);
85         printf("\n");
86     }
87     return 0;
88 }

 

posted @ 2012-05-30 20:36  Naix_x  阅读(167)  评论(0编辑  收藏  举报