why my code is giving wrong answer

#include<stdio.h>
long check(long N)
{
long num=0;
while(N)
{
if(N%10==3)
{
num++;
}
N=N/10;
}
return num;
}
int main()
{
int T;
scanf("%d",&T);
while(T–)
{
long N,num,b,x;
scanf("%ld",&N);
num=check(N);
if(num>=3)
{
printf("%ld\n",N);
}
else
{
while(1)
{
N=N+1;
b= check(N);
if(b>=3)
{
printf("%ld\n",N);
break;
}
/* else if(((num/10)/10)%10>3)
{
x=9-(((num)/10)/10)%10;
N=N+x100;
}
/

        }

    }

}

}