永发信息网

c语言题目(安全密码)

答案:2  悬赏:0  手机版
解决时间 2021-04-13 23:39

安全的密码至少应该满足下面两个条件:

(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。





#include<stdio.h>
main()
{
char m;
int i,n,c,d,e,f,zong,len;

scanf("%d",&n);

getchar();
for(i=1;i<=n;i++){
len=c=d=e=f=0;
while(m=getchar(),m!='\n'){
if(m>='a'&&m<='z')
c=1;

else if(m>='A'&&m<='Z')
d=1;


else if(m>='0'&&m<='9')
e=1;

else if(m=='~'||m=='!'||m=='@'||m=='#'||m=='$'||m=='%'||m=='^')
f=1; }
zong= c+d+e+f;

if(zong>=3&&len>=8&&len<=16)
printf("YES\n");
else
printf("NO\n");}
return 0;
}



最佳答案

你的len只赋值为0


输入之后len没有语句增加它的值,它就永远为0,


最后判断就永远为假,就永远输出NO


在while循环中最后位置增加一句len++;即可

全部回答
while循环不对。 应该写成 m=getchar(); while(m!='\n'){ ......//你的程序 m=getchar(); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求配一套好看的毒王时装
单选题在经济全球化深入发展的条件下,世界各
大众宝来1.6l自动挡普通版跟质惠版最大的区别
20:30是什么意思??
吉野家麦购店我想知道这个在什么地方
请问我是十七号来的**!二十三号我老公同房
热水器每天插电省电,还是随时用随时插电省电
应试教育下,我们应该怎样学习?
寻找黑客.谁知道怎么联系黑客
轴心国与同盟国如何弄CD
上海、重庆两市先后实施“不再一律封杀马路摊
school days里的诚怎么个人渣法?
低血糖什么症状?年轻人有可能患上的几率大么
荣山中学在哪里啊,我有事要去这个地方
植保燃油摇控飞机和燃油航模摇控直升机的区别
推荐资讯
霸王别姬皮肤虞姬台词,谁知道戏剧霸王别姬中,
怎样甩翻比自己喝酒厉害的人?
单选题高锰酸钾分解得到的产物除了氧气外,还
馋嘴巴酸辣粉在什么地方啊,我要过去处理事情
如何成为高中教师
小车车窗没有关,被雨淋了一夜,车门里面会生锈
选择一个领证的好日子
谁传我QQ旋舞最新客户端,不要自动更新的,表
成都空军机关医院-停车场地址在哪,我要去那
霸气激励人心的短句子,关于激励人学习的名言
台式机安装无线路由器的成本
win7操作系统中怎么把桌面的图标调小点 ,屏
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?