密码安全问题,必须有三种以上,且8~16之间个字符。。。。。。。。。。。。。问题是为什么总是输出NO啊,新手无语啊
#include<stdio.h>#include<string.h>
int main()
{
int n,i,l,k,m,p,sum;
scanf("%d",&n);
getchar();
while(n--)
{
char a[100];
gets(a);
int t=strlen(a);
if(t<8||t>16)
{
printf("NO\n");
}
else
{
int l=0,k=0,m=0,p=0,sum=0;
for( i=0;i<t;i++)
{
if(a[i]>='a'&&a[i]<='z') m=1;
else if(a[i]>='0'&&a[i]<=9) k=1;
else if(a[i]<='Z'&&a[i]>='A') l=1;
else if ((a[i]=='@')||(a[i]=='#')||(a[i]=='$')||(a[i]=='%')||(a[i]=='^')||(a[i]=='~')||(a[i]=='!')||(a[i]=='^' )) p=1;
}
sum=m+k+l+p;
if(sum>=3) printf("YES\n");
else printf("NO\n");
}
}
return 0;
}