求解,为什么oj显示运行错误

#include<stdio.h>
int main()
{
int n,b=0,d=0, a = 0;
scanf("%d", &n);
char c;
while (a < n)
{
if(d==0)
getchar();
d = 0;
c = getchar();
if (c=='_' || (c > 64 && c < 91) || (c > 96 && c < 123))
;
else
{
while ((getchar()) != '\n')
;
d = 1;
printf("no\n");
continue;
}
while ((c = getchar()) != '\n')
{
if (c == '_' || (c < 58 && c>47) || (c > 64 && c < 91) || (c > 96 && c < 123))
;
else
{
b = 1;
printf("no\n");
break;
}
}
if (b == 1)
continue;
if (c == '\n')
printf("yes\n");
a++;
}
return 0;
}