求解惑?

P1307 [NOIP2011 普及组] 数字反转

liuqishijian @ 2022-01-24 13:00:47

#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    int i,count=0;
    scanf("%s",a);
    if(a[0]=='-'){
        for(int j=strlen(a)-1;j>=1;j--)
            if(a[j]=='0'){
                count++;
            }
        if(count==strlen(a)-1){
            printf("0");
            return 0;
        }
    }
    else{
        for(int j=strlen(a)-1;j>=0;j--)
            if(a[j]=='0'){
                count++;
            }
        if(count==strlen(a)){
            printf("0");
            return 0;
        }
    }
    i=strlen(a)-1;
        while(a[i]=='0'){
            i--;
        }
    if(a[0]=='-'){
        printf("-");
        for(;i>=1;i--){
            printf("%c",a[i]);
        }
    }
    else
        for(;i>=0;i--){
            printf("%c",a[i]);
        }
    return 0;
}

这个代码把两个特殊类型输出都等于0,如-000000我是让它输出0,000000我也是让它输出0,但是我觉得原样输出也没错,但是样例没有测试,我该到底输出哪个?


by wenlebo @ 2022-02-15 10:53:46

不会出现“0000000”和“-000000”,以为没有这样的数,就输出零就行了。


|