为啥前两个测试点runtime error 啊。。。

P1307 [NOIP2011 普及组] 数字反转

leipipi @ 2019-12-19 20:33:16

#include <stdio.h>
#include <string.h>
int main()
{

    char q;
    while((q=getchar())!=EOF)
    {
        char a[11]={0};
        a[0]=q;
        int i=1;
        while((q=getchar())!='\n')
        {

            a[i]=q;
            i++; 
        }
        int x;
        x=strlen(a);
        int flag=0;
            if(a[0]=='-')
            {  printf("-");
                for(int j=x-1;j>=1;j--)
                {

                if(a[j]!='0'&&flag==0)
                {
                    printf("%c",a[j]);
                    flag=1;
                }
                else if(flag==1)
                {
                    printf("%c",a[j]);
                }

                }
                    printf("\n");
            }
            else if(a[0]!='-')
            {
                for(int j=x-1;j>=0;j--)
                {
                if(a[j]!='0'&&flag==0)
                {
                    printf("%c",a[j]);
                    flag=1;
                }
                    else if(flag==1)
                {
                    printf("%c",a[j]);
                }

                }
                    printf("\n");

            }

    }
    return 0;
}

by 帅气的陈子祺 @ 2020-10-15 22:36:34

可能是你没有考虑负数,负数要特殊判断;


|