循环之中的判断只判断了第1句就结束不知道为什么,还有那个回文数为0时输出No不太清楚

从data.in文件中输入数据。 输入若干行,每行有两个正整数m、n,中间有1个空格,代表判断从m到n范围以内的自然数哪些为自守数。 例如:输入1 100,代表m接收1,n接收100,要判断输出1100以内的自守数。 【输出要求及格式】 输出到文件data.out中。 如果输入的m大于n,或者m、n不是自然数,输出Data error。 如果mn范围内存在自守数,输出若干行,每行只有一个自守数,输出一个自守数后要换行。 如果m~n范围内不存在自守数,输出No。 【样例输入】 1 100 100 1 10 20 【样例输出】 1 5 6 25 76 Data error No 【数据规模与约定】 [1,10000]范围内的自然数,包含1和10000。m、n所选区间在这个范围内任意。
#include<stdio.h>
int main()
{ int m,n,q,t,h,e,k,b=0;
while(scanf("%d %d",&m,&n)!=EOF)
{
if(m<n||m>0||n>0)
{ for(;m<n;m++)
{
if(1<=m<10)
{ t=mm;
q=t/1%10;
if(q==m)
printf("%d\n",m);
b++;
continue;
} else
if(b==0)
{
printf("No");
}
else
if(10<=m<=99)
{ t=m
m;
e=t/10%10;
q=t/1%10;
k=e10+q;
if(k==m)
printf("%d\n",m);
b++;
continue;
else
if(b==0)
{
printf("No");
}
}
else
if(100<=m<=999)
{t=m
m;
h=t/100%10;
e=t/10%10;
q=t/1%10;
k=h100+e10+q;
if(k==m)
{
printf("%d\n",m);
b++;
continue;
}else

                if(b==0)
                {
                    printf("No");
                }
             }
          }
    }else

printf("Data error\n");
}
}