题目大意:
n组数n在前,输入字符串判断是否为安全密码,符合安全密码的条件,和输入输出格式如下:
未ac原因:
continue处写成了break,混淆了两词的用法,前者是结束本次循环,跳到下一次循环的开始;而后者用于结束循环体,不再循环。
解题要点:
用字符串数组定义,对每一个字符判断是否符合四种情况。
代码:
#include<cstdio>
#include<string.h>
int main()
{
int n1,n2,n3,n4,m,i;
char a[55];
scanf("%d",&m);
getchar(); //勿忘
while(m--)
{
n1=n2=n3=n4=0;
gets(a);
int len=strlen(a);
if(len>=8&&len<=16)
{
for(i=0;i<len;i++)
{
if(a[i]>='0'&&a[i]<='9')
{n1=1;continue;} //continue可以不用加,但绝不可以用break
else if(a[i]>='A'&&a[i]<='Z')
{n2=1;continue;}
else if(a[i]>='a'&&a[i]<='z')
{n3=1;continue;}
else
n4=1;
}
if(n1+n2+n3+n4>=3)
printf("YES\n");
else
printf("NO\n");
}
else printf("NO\n");
}
//while(1);
return 0;
}