为什么是错的?

P1307 [NOIP2011 普及组] 数字反转

Ansonxiu @ 2016-05-31 18:28:42

#include<stdio.h>
int main()
{
    long a,i,j;
    scanf("%ld",&a);
    if(a<0) {printf("-");a=0-a;}
    while(a/10!=0)
    {
        if(i==0&&a%10==0) a/=10 continue;
        else
        {
            i=1;
            printf("%ld",a%10);
            a/=10;
        }
    }printf("%ld",a%10);
    return 0;
}

by kongksora @ 2016-06-01 19:18:39

因为第9行的“a/=10”后面没有分号


by kongksora @ 2016-06-01 19:19:32

而且貌似漏了一对大括号


by kongksora @ 2016-06-01 19:21:00

还有就是你没有去掉开头的0,

比如1000 反转应该是1 而你的程序却输出0001


by kongksora @ 2016-06-01 19:24:55

#include<stdio.h>
int main()
{
    long a,i,j;
    scanf("%ld",&a);
    if(a<0) {printf("-");a=-a;}
    while(a&&!(a%10))a/=10;
    while(a/10!=0)
    {
        if(i==0&&a%10==0){a/=10;continue;}
        else
        {
            i=1;
            printf("%ld",a%10);
            a/=10;
        }
    }printf("%ld",a%10);
    return 0;
}
这个是改进后的,在前面加了一段将a多余的0去掉的程序。

by Deny_小田 @ 2016-06-01 19:27:23

@周耀佳 赞一个


by kongksora @ 2016-06-01 19:28:54

什么?@Deny_小田


by kongksora @ 2016-06-01 19:29:36

@Deny_小田


by 1124828077ccj @ 2016-06-01 19:49:04

@Deny_小田 有人叫你


by Deny_小田 @ 2016-06-01 19:51:01

@2016陈常杰 周耀佳已经给我发私信了,谢谢~


|