题解 | #密码强度等级#

密码强度等级

https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

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

int main() {

    char m[300];
    int grade;
    fgets(m, 302, stdin);

    int len = strlen(m) - 1;        //长度
    //printf("%d",len);
    if (len >= 0 && len <= 4 ) {
        grade = 5;
    } else if (len >= 5 && len <= 7) {
        grade = 10;
    } else if (len >= 8) {
        grade = 25;
    }

    int sw = 0, tw = 0;         //字母
    int num = 0;                //数字
    int sm = 0;                 //符号
    for (int i = 0; i <= len; i++) {
        if ((m[i] >= 0x21 && m[i] <= 0x2f) || (m[i] >= 0x3a && m[i] <= 0x40) ||
                (m[i] >= 0x5b && m[i] <= 0x60) || (m[i] >= 0x7b && m[i] <= 0x7e)) {
            sm++;
        }
        if (m[i] >= '0' && m[i] <= '9' ) {
            num++;
        }
        if (m[i] >= 'a' && m[i] <= 'z' ) {
            sw++;
        }
        if (m[i] >= 'A' && m[i] <= 'Z') {
            tw++;
        }
    }
    if (sw != 0 && tw != 0) {
        grade += 20;
    } else if (sw != 0 || tw != 0) {
        grade += 10;
    }
    if (num == 1) {
        grade += 10;
    } else if (num > 1) {
        grade += 20;
    }
    if (sm == 1) {
        grade += 10;
    } else if (sm > 1) {
        grade += 25;
    }

    if (sm != 0 && num != 0 && sw != 0 && tw != 0) {
        grade += 5;
    }
    if (sm != 0 && num != 0 && sw != 0 && tw == 0) {
        grade += 3;
    }
    if (sm != 0 && num != 0 && sw == 0 && tw != 0) {
        grade += 3;
    }
    if (sm == 0 && num != 0 && (sw != 0 || tw != 0)) {
        grade += 2;
    }
   // printf("%d", grade);

    if (grade >= 0 && grade < 25)
        printf("VERY_WEAK");
    if (grade >= 25 && grade < 50)
        printf("WEAK");
    if (grade >= 50 && grade < 60)
        printf("AVERAGE");
    if (grade >= 60 && grade < 70)
        printf("STRONG");
    if (grade >= 70 && grade < 80)
        printf("VERY_STRONG");
    if (grade >= 80 && grade < 90)
        printf("SECURE");
    if (grade >= 90)
        printf("VERY_SECURE");



    return 0;
}

全部评论

相关推荐

每晚夜里独自颤抖:1600一个月?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务