我的代码如下,PAC是因为this's0909在这里判断的是VERY_STRONG,而我是STRONG
题目如下
一、密码长度:
5 分: 小于等于4 个字符
10 分: 5 到7 字符
25 分: 大于等于8 个字符
二、字母:
0 分: 没有字母
10 分: 全都是小(大)写字母
20 分: 大小写混合字母
三、数字:
0 分: 没有数字
10 分: 1 个数字
20 分: 大于1 个数字
四、符号:
0 分: 没有符号
10 分: 1 个符号
25 分: 大于1 个符号
五、奖励:
2 分: 字母和数字
3 分: 字母、数字和符号
5 分: 大小写字母、数字和符号
最后的评分标准:
大于等于90: VERY_SECURE
大于等于80: SECURE
大于等于70: VERY_STRONG
大于等于 60: STRONG
大于等于 50: AVERAGE
大于等于 25: WEAK
大于等于0: VERY_WEAK
#include<stdio.h>
#include<string.h>
int main(){
int n,fen=0,i,z=0,Z=0,sh=0,f=0,j=0;
char s[10005];
scanf("%s",s);
n=strlen(s);
if(n<=4) fen+=5;
else if(n>=5&&n<=7) fen+=10;
else if(n>=8) fen+=25;
for(i=0;i<n;i++){
if(s[i]>='a'&&s[i]<='z') z++;
else if(s[i]>='A'&&s[i]<='Z') Z++;
else if(s[i]>='0'&&s[i]<='9') sh++;
else f++;
}
if((z!=0&&Z==0)||(z==0&&Z!=0)) fen+=10;
else if(z!=0&&Z!=0) fen+=20;
if(sh==1) fen+=10;
else if(sh>1) fen+=20;
if(f==1) fen+=10;
else if(f>1) fen+=25;
if(f==0&&sh!=0&&(z!=0||Z!=0)) fen+=2;
else if(f!=0&&sh!=0&&z!=0&&Z==0) fen+=3;
else if(f!=0&&sh!=0&&z==0&&Z!=0) fen+=3;
else if(f!=0&&sh!=0&&z!=0&&Z!=0) fen+=5;
if(fen>=0&&fen<25) printf("VERY_WEAK\n");
else if(fen>=25&&fen<50) printf("WEAK\n");
else if(fen>=50&&fen<60) printf("AVERAGE\n");
else if(fen>=60&&fen<70) printf("STRONG\n");
else if(fen>=70&&fen<80) printf("VERY_STRONG\n");
else if(fen>=80&&fen<90) printf("SECURE\n");
else if(fen>=90) printf("VERY_SECURE\n");
return 0;
}
请大家帮我看看为什么,谢谢了