帮忙看一下这个统计整数number中数字digit的个数的程序哪有有关问题啊多谢呦

帮忙看一下这个统计整数number中数字digit的个数的程序哪有问题啊~~谢谢呦
#include   <stdio.h>
int   main(   )
{
    int   ri,repeat;
        int   count;
            long   in;
int   countdigit(long   number,   int   digit);

    scanf( "%d ",&repeat);
        for(ri=1;ri <=repeat;ri++){
scanf( "%ld ",&in);
count=countdigit(in,2);
    printf( "count=%d\n ",count);
        }
        }
    int   countdigit(long   number,   int   digit)
            {

int   a,t,count,count1,i;
  count=1;   count1=0;
while((t=number/10)!=0)
          count++;
for(i=1;i <=count;i++)
      {a=number;
        for(;a> 0;a/=10)
              {if(a%10==2)
  count1++;}}
  return   count1;}

------解决方案--------------------
while((t=number/10)!=0)
count++;
//死循環