求大神帮忙找一下错误!谢谢

P1307 [NOIP2011 普及组] 数字反转

醉星辰 @ 2017-11-19 15:48:22

代码:

#include <stdio.h>
#include <math.h> 
int main(void)
{
    long number,sum;
    int a,b,c,i; //b:处理后有几位数  c:处理前标识正负 
    int storage[11]; //存放各位数字 
    scanf("%d",&number);
    if(number<0)
    {number=-number;
     c=0;           }
    else
    c=1;  //负号单独处理 
    for(i=1,b=0;number>0;)  //i作为标记,i=1时之前的部分全部是不要打印的0 
    {
        a=number%10;
        number/=10;
        if(a==0&&i==1)  
        continue;
        else
        {storage[b]=a;
         b++;
         i=0;           } //跳出循环时数组中有b个数 
    }
    for(i=0,sum=0;i<b;i++)
    {
        sum=sum+storage[i]*pow(10,b-i-1);
    } 
    if(c==1)     
    printf("%d",sum);
    else
    printf("%d",-sum);
    return 0; 
}
。。1,2,8,9,10几个评测点都没过,不知道咋回事,自己渣,望大神帮忙看一下,谢谢

by 超威蓝猫 @ 2017-11-19 15:55:20

-0


by stray_233 @ 2017-11-19 16:20:51

位数太少?


by 无欢 @ 2017-11-19 16:42:05

唉。。太复杂

十五行代码

#include<stdio.h>
int main()
{
        int n;
        scanf("%d",&n);
    int j,x=0;
        do
        {
           j=n%10;
           n=n/10;
           x=x*10+j*10;
        }while(n!=0);
        printf("%d",x/10);
        return 0;
}

对,就这么简单。。。


by sleepyNick @ 2017-11-19 16:53:55

P党表示看不懂


by AzusidNya @ 2018-01-12 08:48:30

有另一种代码

#include<iostream>
using namespace std;
int main()
{
    int a;
    cin>>a;
    int sum=0;
    while(a)
    {
        sum*=10;
        sum+=a%10;
        a/=10;
    }
    cout<<sum;
    return 0;
}
这么简单的提还叫boss战!

|