输入大数的时候直接判断为非回文数

#include<stdio.h>
int main()
{
    long long int x,y,z,count;//需要定义4个变量,其中x为输入整数,y为储存x的整数,z为最终得到的数,count为计数器. 
    printf("请输入一个整数x:");
    scanf("%ld",&x);
    if(x<10){
        printf("输入错误请重新输入"); return 0;//需要晒出掉小于0的数小数,否则小于0的小数都会输出为不完美回文整数 
    }else
        y=x;//储存x的值,否则在while循环中不可运行无输出结果 
        while(y>0){
            z=z*10+y%10;//通过x10的商和x10的余数进行x的分离和新数y的构造 
            count++;       //计数器,如果为完美回文整数则计数结果为奇数,反之为不完美回文整数计算结果
            y=y/10;
        }
        if(z==x){//while循环结束后判断得到的新数z与原数x是否相等 
            if(count%2==0){//判断奇偶性 
            printf("整数x是一个完美回文整数");}
            if(count%2==!0){
            printf("整数x是一个不完美回文整数");}
        }
        else{
            printf("整数数x不是一个回文整数"); 
        }
        return 0;
}

z没有设置初始值为0

#include<stdio.h>
long long int z;    //放里面的话会随机赋初值 
int main()
{
    long long int x,y,count;//需要定义4个变量,其中x为输入整数,y为储存x的整数,z为最终得到的数,count为计数器. 
    printf("请输入一个整数x:");
    scanf("%ld",&x);
    if(x<10){
        printf("输入错误请重新输入"); return 0;//需要晒出掉小于0的数小数,否则小于0的小数都会输出为不完美回文整数 
    }else
        y=x;//储存x的值,否则在while循环中不可运行无输出结果 
        while(y>0){
            z=z*10+y%10;//通过x除10的商和x除10的余数进行x的分离和新数y的构造 
            count++;       //计数器,如果为完美回文整数则计数结果为奇数,反之为不完美回文整数计算结果
            y=y/10;
        }
        if(z==x){//while循环结束后判断得到的新数z与原数x是否相等 
            if(count%2==0){//判断奇偶性 
            printf("整数x是一个完美回文整数");}
            if(count%2==!0){
            printf("整数x是一个不完美回文整数");}
        }
        else{
            printf("整数数x不是一个回文整数"); 
        }
        return 0;
}