实在不知道哪里错了 请求帮助

P1307 [NOIP2011 普及组] 数字反转

hsdfz_zyx @ 2017-04-02 21:40:27

#include<stdio.h>
int main ()
{
    int a;
    scanf("%d",&a);
    while(a)
    {    if(a%10!=0)
         { int c=0;
            if (a<0)
            { while(a)
              { 
              if (c==0)
                  {printf("%d",a%10);
                  c++; 
                a/=10; }
                  else
                  printf("%d",a%10*(-1));
                  a/=10;
              }
        }    
            if (a>0)
            {while (a)
                printf("%d",a%10);
                    a/=10;    }
        }
        else 
        a/=10;
    }    return 0;
}

by riyang @ 2017-04-12 11:47:39

第1,如果是负数,先把负号输出,然后变成正数处理

第2,处理数字最后连续的0

第3,每次求余,并输出余数,同时除10得到新数


|