第一种:
取yes的情况
#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){int z=0,i,m;char a[50];gets(a);m=strlen(a);for(i=0;i<m;i++){if((a[0]<='z' && a[0]>='a') || (a[0]<='Z' && a[0]>='A') || (a[0]=='_')){if((a[i]<='z' && a[i]>='a')||(a[i]>='A'&&a[i]<='Z')||(a[i]>='0'&&a[i]<='9')||(a[i]=='_')){z++;}}}if(z==m){//重点小细节printf("yes");}else{printf("no");}} #include<stdio.h>//这个有错误 但是借用x这个方法可以借鉴int main(){int i;int x=1;char a[50];scanf("%c",&a[0]);if((a[0]>='A'&&a[0]<='Z')||(a[0]>='a'&& a[0]<='z')||(a[0]=='_')){for(i=1; ;i++){scanf("%c",&a[i]);if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_')||(a[i]<='9'&&a[i]>='0')){x=0;}else{x=1;break;}}}else{x=1;}if(x=0){printf("yes");}else{printf("no");}return 0;}
结果:例子1正确 例子2 正确 例子3输出错误
第二种
取no的情况
此时例子1 输出错误 例子2输出错误 例子3正确
???我纳闷了