标题:字符串
只看楼主
qazxsw321
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2019-10-25
结帖率:25%
已结贴  问题点数:10 回复次数:1 
字符串
某网站规定注册账号时密码必须达到一定强度才可以。他们规定密码长度至少6位,数字、大写字母、小写字母、符号(~!@#$%^&*()[]}{|\<>?/.,:”‘;)这四类中至少包含三类才合格。现在请你写一段程序来判断一个密码是否合格。
输入:
第一行为一个整数n(0<n<10),代表测试用例组数,
后边是n行测试用例,每行为一个长度不超过30的字符串
输出:
共n行,与输入的n行测试用例相对应,如果密码合格则输出yes,否则输出no。
#include <stdio.h>
#include<string.h>
int main()
{   
    int n,i,j,b,c[4]={0,0,0,0},x=0;
    char a[10][30];
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%s",&a[i]);
    for(i=0;i<n;i++)
    {
        b=strlen(a[i]);
        
        if(b<6)
        printf("no\n");
        else{
        for(j=0;j<b;j++)
        {   
            if(a[i][j]>='0'&&a[i][j]<='9')
            c[0]++;
            else if(a[i][j]>=65&&a[i][j]<=90)
            c[1]++;
            else if(a[i][j]>=97&&a[i][j]<=122)
            c[2]++;
            else if(a[i][j]>=33&&a[i][j]<=47&&a[i][j]!='+'&&a[i][j]!='-'||a[i][j]>=58&&a[i][j]<=64&&a[i][j]!='='||a[i][j]>=91&&a[i][j]<=96&&a[i][j]!='_'||a[i][j]>=123&&a[i][j]<=126)
            c[3]++;
        }
        for(j=0;j<4;j++)
        {
            if(c[j]>0) x++;
        }
        if(x>=3)
        printf("yes\n");
        else
        printf("no\n");
        }
    }
    return 0;
}
我试了几个答案都是对的,但是提交后却显示答案错误
搜索更多相关主题的帖子: 密码 for 字符串 printf 输出 
2019-12-09 23:33
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
得分:10 
看往常的题目解析都是说 :是否存在字符为空格‘ ’的情况。
https://bbs.bccn.net/thread-497812-1-1.html
https://bbs.bccn.net/thread-497501-1-1.html
2019-12-10 10:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498313-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021513 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved