满意答案
ggm水中游龙
2013.12.31
采纳率:46% 等级:13
已帮助:15320人
我发现你的程序是有问题的,首先,你的scanf("%d",n);是错误的,应该是scanf("%d",&n);n是整型的,接着你把 j=1;放在if的循环中,那么你每一次做循环是j都为1了,所以要把它放在外面,还有就是else found=1;break;代表着不管怎么运行你的break都是要运行的,下面的这个是我弄的,
#include
main()
{
int n,i,j,found=0;
char str[50];
scanf("%d",&n);
getchar();
for(i=0;i
{
gets(str);
j=1;
if(str[0]>='A' && str[0]<='Z' || str[0]>='a'&&str[0]<='z'||str[0]=='_') //首字母符合
{
{
while(str[j]!='\0')
{
if(str[j]>='A'&&str[j]<='Z'||str[j]>='a'&&str[j]<='z'||str[j]=='_'||str[j]>=48&&str[j]<=57)
j++;
else
{
found=1;
break;
}
}
}
if(found==1)
printf("no\n");
else
printf("yes\n");
}
else //首字母不符合
{
printf("no\n");
continue;
}
}
}
00分享举报