70分菜鸡路过,求大佬教,我觉得很正确,不懂为什么末2个测试点错误,哭辽

P1307 [NOIP2011 普及组] 数字反转

小lagi @ 2020-01-02 18:27:32



#include<stdio.h>

int main()

{

    int N;
    scanf("%d",&N);
    int n;
    if(N>0)
    {
        n=N;
        while(n>0)
        {
            if(n%10!=0)
                printf("%d",n%10);
            n/=10;
        }
    }
    else
        if(N<0)
        {
            n=-N;
            printf("-");
            while(n>0)
            {
                if(n%10!=0)
                    printf("%d",n%10);
                n/=10;
            }
        }
        else
            printf("%d",N);
    return 0;
}```

by NIMNIM @ 2020-01-02 18:35:26

@小lagi 举个例子 30560 你会把中间那个0省掉 正确输出是6503 你的是653 就是说省0只能省掉一开始的连续的0


by NIMNIM @ 2020-01-02 18:36:51

@小lagi 你可以用一个judge,judge=true,就是一开始的连续的0,就省掉。一旦没有连续的0了,就令judge=false,不省了


by tangrunxi @ 2020-01-02 18:47:13

@小lagi 就相当于是如果有0零去掉以后就break;


by tangrunxi @ 2020-01-02 18:48:19

就相当于是如果判断是否有连续的0,零去掉以后就break;


by 小lagi @ 2020-01-02 19:53:42

嗯嗯,懂了,谢谢大佬们


|