永发信息网

C 控制结构 密码

答案:2  悬赏:40  手机版
解决时间 2021-04-28 12:37
问题描述
网上流传一句话:"常在网上飘啊,哪能不挨刀啊~"。其实要想能安安心心地上网其实也不难,学点安全知识就可以。 首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件: (1).密码长度大于等于8,且不要超过16。 (2).密码中的字符应该来自下面“字符类别”中四组中的至少三组。 这四个字符类别分别为: 1.大写字母:A,B,C...Z; 2.小写字母:a,b,c...z; 3.数字:0,1,2...9; 4.特殊符号:~,!,@,#,$,%,^; 给你一个密码,你的任务就是判断它是不是一个安全的密码。
输入
输入数据第一行包含一个数M,接下有M行,每行一个密码(长度最大可能为50),密码仅包括上面的四类字符。
输出
对于每个测试实例,判断这个密码是不是一个安全的密码,是的话输出YES,否则输出NO。
输入样例
3 a1b2c3d4 Linle@ACM ^~^@^@!%
输出样例
NO YES NO
最佳答案

#include <stdio.h>
#include <string.h>


int main()
{
int result[100]={0};
char buff[50];
int M=0,i,j,sum=0;
bool cnt[4]={false},is=true;


scanf("%d",&M);

for(i=0;i<M;i++)
{
sum=0;
is=true;
for(j=0;j<4;j++) cnt[j]=false;
memset(buff,0,strlen(buff));


getchar();
scanf("%s",buff);


if(strlen(buff)<8||strlen(buff)>16)
is=false;


for(j=0;j<strlen(buff);j++)
{
if(buff[j]>='0'&&buff[j]<='9')
cnt[0]=true;
else if(buff[j]>='a'&&buff[j]<='z')
cnt[1]=true;
else if(buff[j]>='A'&&buff[j]<='Z')
cnt[2]=true;
else cnt[3]=true;
}
sum=cnt[0]+cnt[1]+cnt[2]+cnt[3];


if(is&&sum>=3)
result[i]=1;
else result[i]=0;
}


for(i=0;i<M;i++)
{
if(result[i])
printf("Yes ");
else
printf("No ");
}


return 0;
}



全部回答

先读入行数,设定循环次数

循环内根据asc码进行判定,设置四个标志位,顺序读入密码,包含对应种类就置位,最后看标志位返回结果

退出循环

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
哪款电脑在两千左右…反映快一点
冰箱放厨房哪个位置好,冰箱到底是放在厨房好
尚好佳超市我想知道这个在什么地方
小学暑假的调查报告怎么写
网上够物安全吗?
关于天气的谚语三年级,三年级语文园地里积累
有关书的网址
求信乐团“挑衅”歌词
梦幻西游2010那个区最有前途
你的初恋情人离了婚你该怎么办?
二点水加个女字念什么?
根据达而文的生物进化论来讲是先有鸡还是先有
为什么我有一个群总也退不掉?
昆山在哪里啊!?
任务管理器进程问题
推荐资讯
黄瓜可以贴一整个晚上吗?(贴着睡)如果不行那
电脑键盘拳皇2002隐藏必杀龙手
谁有CF自雷G发一下我的邮箱hfq2zyt@vip.qq.co
爱情难道就那么的伟大吗?
有首歌不知道叫什么名字!知道的说下
驴子谁生的。单一的物种?
与创意有关的名言,有关创意的名人警句
psp充电宝好吗??
最近在网上看到很多3DMAX的图片觉得不错,我
地下城怎样快速升级
女朋友不理自己怎么办
我想看沧月的小说《风玫瑰》,可是搜了很多小
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?