题目:​​http://acm.hdu.edu.cn/showproblem.php?pid=2043​

#include <string.h>
#include <stdio.h>
int main()
{
char s[1005];
int n,l,a;
scanf("%d",&n);
while(n--)
{
scanf("%s",s);
l=strlen(s);
a=0;
if(l>=8&&l<=16)
{
for(int i=0;i<l;i++)
if(s[i]>='A'&&s[i]<='Z')
{
a++;
break;
}
for(int i=0;i<l;i++)
if(s[i]>='a'&&s[i]<='z')
{
a++;
break;
}
for(int i=0;i<l;i++)
if(s[i]>='0'&&s[i]<='9')
{
a++;
break;
}
for(int i=0;i<l;i++)
if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^')
{
a++;
break;
}
}
if(a<3)
puts("NO");
else
puts("YES");
}
return 0;
}