输入好像有点问题,读字符读不满,应该怎么改

题目,输入一个字符串,判断其是否是C的合法标识符。

Input
输入数据包含多个测试实例,数据的第一行是一个整数nn,表示测试实例的个数,然后是nn行输入数据,每行是一个长度不超过50的字符串。

Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。

Examples
input复制
3
12ajf
fi8x_a
ff ai_2
output复制
no
yes
no


#include
#include
int main(){
int n;
scanf("%d\n",&n);
char x[50];
int y,i,q,z=0;
for(q=0;q
z=0;

y=strlen(x);
for(i=0;i
    x[i]=getchar();
}
if((x[0]<='z'&&x[0]>='a')||(x[0]<='Z'&&x[0]>='A')||(x[0]=='_')){
z=0;
}else{
    z=2;
} 
for(i=1;i
    if((x[i]<='z'&&x[i]>='a')||(x[i]<='Z'&&x[i]>='A')||(x[i]=='_')||(x[i]>='0'&&x[i]<='9')){            
    z=z;
    }else{
        z=2;
    }
}
if(z==0){
    printf("yes\n");
}
if(z==2){
    printf("no\n");
}
} 

return 0;
}