hdu2043菜鸟问题
#include <stdio.h>#include <stdlib.h>int main(){ int n,i,l,e,b,c,d,sum; char a[50];//最好不要定义成正好,想想如果定义正好,有人就是16以上,没办法报错 scanf("%d",&n); while(n--) { e=b=c=d=0; scanf("%s",a);//最常用的方法,定义字符串方法 l=strlen(a); if(l<8||l>16) printf("NO\n"); else{ for(i=1;i<=l;i++) { if(a[i]=='~'||a[i]=='!'||a[i]=='@'||a[i]=='#'||a[i]=='$'||a[i]=='%'||a[i]=='^') e=1; if(a[i]>='A'&&a[i]<='Z')//虽然是string,但是也可以是'' b=1; if(a[i]>='a'&&a[i]<='z') c=1; if(a[i]>=0&&a[i]<=9) d=1; } sum=e+b+c+d; if(sum>=3) printf("YES\n"); else printf("NO\n"); } } return 0;}#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ int n,i,l,e,b,c,d,sum; char a[51];//最好不要定义成正好,想想如果定义正好,有人就是16以上,没办法报错 //最好设成51,50可能越界 scanf("%d",&n); while(n--) { e=b=c=d=0; scanf("%s",a);//最常用的方法,定义字符串方法 l=strlen(a); if(l<8||l>16) printf("NO\n"); else{ for(i=0;i<l;i++) { if(a[i]>='A'&&a[i]<='Z')//虽然是string,但是也可以是'' b=1; else if(a[i]>='a'&&a[i]<='z') c=1; else if(a[i]>='0'&&a[i]<='9') //主要这里是'0' '9' 不是0 9 d=1; else e=1; } sum=e+b+c+d; if(sum>=3) printf("YES\n"); else printf("NO\n"); } } return 0;}