C UVa-401:回文,超出了输出限制

C UVa-401:回文,超出了输出限制,c,C,我正在尝试的问题401-回文UVa在线法官,但我总是得到一个失败。。。你可以找到问题所在 这是我的密码: #include <stdio.h> #include <stdlib.h> #include <string.h> char reverse_t[36] = {' ','1','S','E',' ','Z',' ',' ','8',' ', 'A',' ',' ',' ','3',' ',' ',

我正在尝试的问题401-回文UVa在线法官,但我总是得到一个失败。。。你可以找到问题所在

这是我的密码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


char reverse_t[36] = {' ','1','S','E',' ','Z',' ',' ','8',' ',
                     'A',' ',' ',' ','3',' ',' ',
                     'H','I','L',' ','J','M', ' ',
                     'O', ' ', ' ', ' ','2','T',
                     'U','V','W','X','Y','5'};

int is_mirror(char a,char b){
    if(a>='1' && a<='9'){
        if(reverse_t[a-'0'] == b) return 1;}
    else if(a>='A' && a<='Z')
        {if(reverse_t[a-'A'+10] == b) return 1;}
    return 0;
}

int main(int argc, char **argv) {
    char line[21];
    size_t len;
    int is_palinedromes, is_mirrored;
    while(scanf("%20s",line)){
        is_palinedromes = 1;
        is_mirrored = 1;
        int i;
        len = strlen(line);
        for(i = 0;i<len/2;i++){
            if(line[i] != line[len-1-i])
                is_palinedromes =0;
            if(!is_mirror(line[i],line[len-1-i]))
                is_mirrored = 0;
        }
        if((len%2==1)&&(is_mirrored))
            if(!is_mirror(line[len/2],line[len/2]))
                is_mirrored = 0;
        if(is_palinedromes && is_mirrored)
            printf("%s -- is a mirrored palindrome.\n",line);
        else if(is_mirrored &&(!is_palinedromes))
            printf("%s -- is a mirrored string.\n",line);
        else if((!is_mirrored)&&is_palinedromes)
            printf("%s -- is a regular palindrome.\n",line);
        else
            printf("%s -- is not a palindrome.\n",line);
        printf("\n");
    }

    return 0;
}
#包括
#包括
#包括
字符反向_t[36]={'','1','S','E','','Z','','8','',
‘A’、‘A’、‘B’、‘3’、‘A’、‘B’、‘B’、‘B’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A’、‘A,
‘H’、‘I’、‘L’、‘J’、‘M’、’,
‘O’、‘T’、‘2’、‘T’,
‘U’、‘V’、‘W’、‘X’、‘Y’、‘5’};
int是镜像(字符a、字符b){

如果(a>='1'&&a='a'&&a似乎输入没有尽头,所以我只是更改代码

while(scanf("%20s",line))

然后我得到了一个AC:)

while(scanf("%20s",line)!=EOF)