C检测安全密码网上流传一句话:"常在网上飘啊,哪能不挨刀啊~".其实要想能安安心心地上网其实也不难,学点安全知识就可以.首先,我们就要设置一个安全的密码.那什么样的密码才叫安全的
网上流传一句话:"常在网上飘啊,哪能不挨刀啊~".其实要想能安安心心地上网其实也不难,学点安全知识就可以.
首先,我们就要设置一个安全的密码.那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件:
(1).密码长度大于等于8,且不要超过16.
(2).密码中的字符应该来自下面“字符类别”中四组中的至少三组.
这四个字符类别分别为:
1.大写字母:A,B,C...Z;
2.小写字母:a,b,c...z;
3.数字:0,1,2...9;
4.特殊符号:~,!,@,#,$,%,^;
给你一个密码,你的任务就是判断它是不是一个安全的密码.
Input
输入数据第一行包含一个数M,接下有M行,每行一个密码(长度最大可能为50),密码仅包括上面的四类字符.
Output
对于每个测试实例,判断这个密码是不是一个安全的密码,是的话输出YES,否则输出NO.
Sample Input
3
a1b2c3d4
Linle@ACM
^~^@^@!%
Sample Output
NO
YES
NO
我的代码在自己电脑上测试能顺利通过,为什么就是没法AC
#include
#include
int main()
{
int a,i,j;
char s[51];
scanf("%d",&a);
for(i=0;i=8&&strlen(s)
switch(1)
{
case 1:if(s[j]>='a'&&s[j]<='z') flag[0]=1;
case 2:if(s[j]>='A'&&s[j]<='Z') flag[1]=1;
case 3:if(s[j]>='0'&&s[j]<='9') flag[2]=1;
case 4:if(s[j]=='~'||s[j]=='!'||s[j]=='@'||s[j]=='#'||s[j]=='$'||s[j]=='%'||s[j]=='^') flag[3]=1;
}
这个写法真奇葩 不过原则上来说 虽然看着别扭 但是这部分还真没问题
你这个代码不能AC的原因在于getchar的位置
在for(i=0;i<a;i++)开头 你调用了一个getchar
想必是要用它略去输入a时候的回车 这个想法是正确的
可是接下来循环中用的是gets 这个函数可不会剩下个回车给你
再getchar就把下一个输入的第一个字符给略去了
所以在多组输入下 就可能出错了
比如
1asfasdfD这个输入 如果不放在第一个 就会输出NO 但实际上它是YES
再如sdfVX~11 如sdf~sdJSSUUd12456
都会输出错误
修改方式
把getchar移到for上面就可以了
你试试吧
修改后代码 switch那段我就不改了
#include#include
int main()
{
int a,i,j;
char s[51];
scanf("%d",&a);
getchar();//move to here
for(i=0;i {
gets(s);
if(strlen(s)>=8&&strlen(s)<=16)
{
int flag[4]={0,0,0,0};
for(j=0;j
switch(1)
{
case 1:if(s[j]>='a'&&s[j]<='z') flag[0]=1;
case 2:if(s[j]>='A'&&s[j]<='Z') flag[1]=1;
case 3:if(s[j]>='0'&&s[j]<='9') flag[2]=1;
case 4:if(s[j]=='~'||s[j]=='!'||s[j]=='@'||s[j]=='#'||s[j]=='$'||s[j]=='%'||s[j]=='^') flag[3]=1;
}
}
if(flag[0]+flag[1]+flag[3]+flag[2]>=3)
printf("YES\n");
else
printf("NO\n");
}
else printf("NO\n");
}
}
1.不明白万有引力与重力的关系?2.当算赤道上物体飘起来时地球的自转周期,用了重力=万有引力=向心. 2020-03-30 …
例:亲情是游子衣上密密麻麻的针脚,是连年烽火中不期而至的家信,是登高远望是悠然飘来的忧伤.仿:乡情 2020-05-22 …
固定在地面上随风飘动的旗帜和附近的甲,乙两火炬,红旗和...固定在地面上随风飘动的旗帜和附近的甲, 2020-06-19 …
仿写句子去如诗如画的大自然吧,读读蓝天,头顶上白云飘飘,会使你心旷神怡;读读阳光();读读绿叶,听 2020-06-27 …
雪花飘呀飘作者:曹展清晨起来,拉开窗帘,一个银亮的世界展现在我眼前.我一看见这纯白的雪片,就只想尽 2020-06-28 …
有位心理学家说:对一个孩子的成长来说,压力是必需的、正常的,没有压力,人就会轻飘飘,但若压力过大, 2020-07-01 …
雪花飘呀飘阅读答案清晨起来,拉开窗帘,一个银亮的世界展现在我眼前.我一看见这纯白的雪片,就只想尽快 2020-08-01 …
绘生物图时,图中较暗部分怎么绘制?()A.用铅笔密集地在暗处点上点B.用铅笔将暗处涂黑C.用铅笔在暗 2020-12-05 …
右图为我国某地区分层设色地形图,读图回答11-12题.到甲地旅游最有可能看到的地理景观是()A.平原 2020-12-08 …
《我站在铁索桥上》1.诗中第二节中“冒着密密的细雨,冲破了敌人的火网”一句运用了什么修辞手法?起什么 2020-12-27 …