为什么80分啊,求大佬解答

P1307 [NOIP2011 普及组] 数字反转

Heroburnning @ 2017-02-25 23:05:46


#include<string.h>
int table[15];
int c,i=0;
int x=1;
int s=0;
int main()
{   memset(table,0,sizeof(table));
    while((c=getchar())!=EOF)
        {table[i]=c;
         i++;   
        }
    if(table[0]=='-')
    {    
        for(int z=1;z<i-1;z++)
            {
             s=s+(table[z]-'0')*x;
             x=x*10;

            }
    printf("%d",-s); 
    }
    else
    {
        for(int z=0;z<i-1;z++)
            {
             s=s+(table[z]-'0')*x;
             x=x*10;
            }
        printf("%d",s);
    }
    return 0;
}```
落谷显示错了一个输入-290,输出-92的测试点,实际并没有错啊

by 徐熙凯 @ 2017-02-26 14:28:02

#include <cstdio>
#include <iostream>
using namespace std;
int main( )
{
    int a,b,c=0;
    cin>>a;
    if(a==0)
    {
        cout<<0<<endl;
        return 0;
    }
    while(a!=0)
    {
        b=a%10;
        a=a/10;
        c=c*10+b;
    }
    if(a>0)cout<<c;
    else cout<<c;
    return 0;
}
我是用这种做的

|