Mister-小方


私信TA

用户名:1104986125

访问量:245420

签 名:

如此英俊为哪般

等  级
排  名 4
经  验 36610
参赛次数 1
文章发表 68
年  龄 19
在职情况 学生
学  校 大连交通大学
专  业 车辆工程

  自我简介:

解题思路:
1.从输入字符开始做起。

2.一个一个字符判断是不是满足要求。

3.结果的判断与输出。

一步一步分析就行,本题还是比较简单的

参考代码:

#include"stdio.h"
#include"string.h"
int main()
{
    int lengh,d,result[100]={0},check1,check2,check3,check4,check5,i,j;//分别为密码长度,结果,检查判断所用变量
    char a[100]={0};                          //存用户输入几个密码
    scanf("%d",&d);
    getchar();                                      //吃回车
    for(i=0;i<d;i++)
    {
        check1=0,check2=0,check3=0,check4=0;//注意一定要初始化
        gets(a);                             //用户输入密码
        lengh=strlen(a);
        if(lengh<8&&lengh<=16)                   //长度小于8,就直接判断wie不合格密码,直接开始检查下一行密码
            continue;
        for(j=0;j<lengh;j++)         //一个一个判断是否合格
        {
            if(a[j]>='A'&&a[j]<='Z')
                check1=1;
            else if(a[j]>='a'&&a[j]<='z')
                check2=1;
            else if(a[j]>='0'&&a[j]<='9')
                check3=1;
            else if(a[j]=='!'||a[j]=='~'||a[j]=='@'||a[j]=='#'||a[j]=='$'||a[j]=='%'||a[j]=='^')
                check4=1;
            else check5=1;//不是满足要求的字符,密码不合格
            
        }
        if((check1+check2+check3+check4)>=3&&check5!=1)
        {
            result[i]=1;//存结果
        }
    }
    for(i=0;i<d;i++)
    {
        if(result[i]==1)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}

看看大家还有什么不懂的,请在下方评论区留言

 

0.0分

0 人评分

  评论区

写出了状态机的感觉
2018-12-19 22:44:51
哈哈 吃空格那个我还以为一定要定义一个字符然后ch=getcahr();嘞
2018-12-14 19:42:17
你这check5没定义啊
2017-08-21 19:33:01
  • «
  • 1
  • »