数据结构课设,顺序表的应用-回文数猜想,想问各位这程序大概是怎么运行的,还有没有可以创新的空间?

#include<stdio.h>
#include<malloc.h>
#define MaxSize 100
typedef __int64 dataType;
typedef struct{
dataType data[MaxSize];
int size;
}SqList;

SqList* createSqList(){
SqList t=(SqList)malloc(sizeof(SqList));
t->size=0;

return t;

}
void push(SqList *list,dataType x)
{
list->data[list->size]=x;
list->size++;
}
__int64 reverse(__int64 n)
{
__int64 s=0;
while(n){
s=s*10+n%10;
n/=10;
};
return s;
}
int main(){
__int64 n,t;
printf("Please input a number:");
while(~scanf("%I64d",&n)){
SqList *s=createSqList();
push(s,n);
while((t=reverse(n))!=n){
n+=t;
push(s,n);
}
printf("%I64d",s->data[0]);
for(int i=1;isize;i++)
printf("-->%I64d",s->data[i]);
printf("\n");
}
}

第一个元素与最后一个元素比较,第二个元素与倒数第二个元素比较,以此类推。