新人求解问题出在哪?

判断是否是回文数,输出结果的数字很奇特

 #include <stdio.h>
int main()
{
    int x,sum,i=0,j=1,t,a[10];
    scanf("%d",&x);
    while(x!=0)
    {
        t=x%10;/*求数字每位数字(个,十,百......)*/
        x=x/10;
        a[i]=t;/*把每位数字存入数组,a[0]是个位,依次类推*/
        i=i+1;
    }
    while(j!=0)
    {
        sum=sum+a[i];
        i=i-1;
        j=j*10;
        a[i]=a[i]*j;
    }
    if(sum==x)
    {
        printf("%d is palindromic number",sum);
    }
    else
        printf("%d is not palindromic number",sum);
    return 0;
}
#include <stdio.h>
int main()
{
    int x,sum=0,i=0,j=1,t,a[10];
    scanf("%d",&x);
    int x1 = x;
    while(x!=0)
    {
        t=x%10;/*求数字每位数字(个,十,百......)*/
        x=x/10;
        a[i]=t;/*把每位数字存入数组,a[0]是个位,依次类推*/
        i=i+1;
    }
    i -= 1;
    while(i!=-1)
    {
        sum=sum+a[i]*j;
        i=i-1;
        j=j*10;
    }
    if(sum==x1)
    {
        printf("%d is palindromic number",sum);
    }
    else
        printf("%d is not palindromic number",sum);
    return 0;
}

输入12321,输出12383.is....

 #include<stdio.h>
int main()
{
    int x,sum,i=0,j=1,t,a[10];
        int x1=x;
    scanf("%d",&x);
    while(x!=0)
    {
        t=x%10;
        x=x/10;
        a[i]=t;
        i=i+1;
    }
    i=i-1;
    while(i!=-1)
    {
        sum=sum+a[i]*j;
        i=i-1;
        j=j*10;
    }
    if(sum==x1)
    {
        printf("%d is palindromic number",sum);
    }
    else
        printf("%d is not palindromic number",sum);
    return 0;
} 

i-=i意思是i=i-1