回文数判断函数错误不知道为啥

#include
int judge(int n)
{ int cnt[1000]; int num=1,t=1; int j;
while(n>0){
cnt[num]=n%10;
num++;
n=n/10;
}
num=num-1;
if(n>100){
for(j=1;j<=num/2;j++){

        if(cnt[num]!=cnt[t]){
        {
                return 0; 
                break;
        }
            
        }
        else {
            num--;
            t++;
            return 1;
        }
    }    
}
else if(n==11) return 1;

}
int main()
{
int a,b,n;
n=11;
printf("%d",judge(n));

 }
 请问为啥输出的是0啊
 
 
#include<stdio.h>
int judge(int n)
{ 
    int cnt[1000]; 
    int num=1,t=1; 
    int j;
    int mid = n; //这里换成mid,不然while循环会让n的值改变的,那么后面的判断n>100就会出错
    while(mid>0){
        cnt[num]=mid%10;
        num++;
        mid=mid/10;
    }
    num=num-1;
    if(n>100){
        for(j=1;j<=num/2;j++){
            if(cnt[num]!=cnt[t]){
                {
                    return 0; 
                    break;
                } 
            }    
            else 
            {
                num--;
                t++;
                return 1;
            }    
        }    
    }
    else if(n==11) 
        return 1;
}
int main()
{
    int a,b,n;
    n=122;
    printf("%d",judge(n));
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^