hdu-2043解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2043

题意解析:目的是判断一串密码是否安全,条件是满足1.大写字母:A,B,C...Z;   2.小写字母:a,b,c...z;     3.数字:0,1,2...9;        4.特殊符号:~,!,@,#,$,%,^;四种类型符号中的三种。

做题思路:最好是定义四个flag变量来进行标记,满足一个条件,就使 flag=1,只要满足有 4个flag之和大于等于3就为安全密码;

代码实现:

#include <stdio.h>
#include <string.h>
int main()
{
   int m,i,j,len;
   int flag1,flag2,flag3,flag4;
   char s[55];
   scanf("%d",&m);
   while(m--)
   {
      scanf("%s",s);
      flag1=0;
      flag2=0;
      flag3=0;
      flag4=0;
      len=strlen(s);
      for(i=0;i<len;i++)
      {
         j=i+1;////////////////////////////用于记录密码的字符数
         if('a'<=s[i]&&s[i]<='z')
         {
            flag1=1;
         }
         if('A'<=s[i]&&s[i]<='Z')
         {
            flag2=1;
         }
         if('0'<=s[i]&&s[i]<='9')
         {
            flag3=1;
         }
         if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^')
            flag4=1;
      }
      if(flag1+flag2+flag3+flag4>=3&&j>=8&&j<=16)/////////////////////////////////////关键条件:保证密码有三种字符,同时密码的字符数在8-16个之间
         printf("YES\n");
      else
         printf("NO\n");
   }
   return 0;
}

 

转载于:https://www.cnblogs.com/LJHAHA/p/9151799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值