解题思路:
1.从输入字符开始做起。
2.一个一个字符判断是不是满足要求。
3.结果的判断与输出。
一步一步分析就行,本题还是比较简单的
参考代码:
#include"stdio.h" #include"string.h" int main() { int lengh,d,result[100]={0},check1,check2,check3,check4,check5,i,j;//分别为密码长度,结果,检查判断所用变量 char a[100]={0}; //存用户输入几个密码 scanf("%d",&d); getchar(); //吃回车 for(i=0;i<d;i++) { check1=0,check2=0,check3=0,check4=0;//注意一定要初始化 gets(a); //用户输入密码 lengh=strlen(a); if(lengh<8&&lengh<=16) //长度小于8,就直接判断wie不合格密码,直接开始检查下一行密码 continue; for(j=0;j<lengh;j++) //一个一个判断是否合格 { if(a[j]>='A'&&a[j]<='Z') check1=1; else if(a[j]>='a'&&a[j]<='z') check2=1; else if(a[j]>='0'&&a[j]<='9') check3=1; else if(a[j]=='!'||a[j]=='~'||a[j]=='@'||a[j]=='#'||a[j]=='$'||a[j]=='%'||a[j]=='^') check4=1; else check5=1;//不是满足要求的字符,密码不合格 } if((check1+check2+check3+check4)>=3&&check5!=1) { result[i]=1;//存结果 } } for(i=0;i<d;i++) { if(result[i]==1) printf("YES\n"); else printf("NO\n"); } return 0; }
看看大家还有什么不懂的,请在下方评论区留言
0.0分
0 人评分