Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

程序代码:

int reverse(int x) {
    char s[33];
    int flag = 1,p,i=0;
      long long sum = 0;
    if(x<0)
    {
        if(x==INT_MIN)  //注意x==INT_MIN时的处理
            return 0;
        flag = -1;
        x = -x;
    }
    while(x)
    {
        p = x%10;
        s[i++] = p+'0';
        x/=10;
    }
    s[i] = '\0';
    i=0;
    while(s[i]!='\0')
    {
        sum = sum*10 + s[i] - '0';
        if(sum>INT_MAX)
        {
            sum = 0;
            break;
        }
        i++;
    }
    sum = sum * flag;
    return sum;
}