A_shijieba 2022-05-13 09:14 采纳率: 20%
浏览 24
已结题

c语言,检查密码的代码 循环到底哪出问题了啊为什么不对

#include<stdio.h>
#include<string.h>
int main(){
int n,i,j,t,c,k,f;
char str[250]="";
scanf("%d",&n);
getchar();
for(i=0;i<n;i++){
gets(str);
t=strlen(str);
if(t<6) {
printf("Your password is tai duan le.\n");
continue;
}
else{
c=0,k=0,f=0;
for(i=0;i<t;i++){
if(str[i]>='0'&&str[i]<='9') {
c=1;
}else if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z'){
k=1;
}else if(str[i]=='.') {
f=1;
}
}
if(f==0) printf("Your password is tai luan le.\n");
else if(c==0) printf("Your password needs zi mu.\n");
else if(k==0) printf("Your password needs shu zi.\n");
else if(c==1&&k==1) printf("Your password is wan mei.\n");

}

}

return 0;

}

  • 写回答

2条回答 默认 最新

  • 丨秋水丨 2022-05-13 09:27
    关注

    第二个循环不要使用i,应该用j:

    img

    字母和数字的判断反了,应该这样子:

    img

    密码里面没有'.'符号时的提示错了,应该不是提示“太短了”,而应该提示没有'.'符号

    img

    #include<stdio.h>
    #include<string.h>
    int main() {
        int n, i, j, t, c, k, f;
        char str[250] = "";
        scanf("%d", &n);
        getchar();
        for (i = 0; i < n; i++) {
            gets(str);
            t = strlen(str);
            if (t < 6) {
                printf("Your password is tai duan le.\n");
                continue;
            }
            else {
                c = 0, k = 0, f = 0;
                for (j = 0; j < t; j++) {
                    if (str[j] >= '0' && str[j] <= '9') {
                        c = 1;
                    }
                    else if (str[j] >= 'A' && str[j] <= 'Z' || str[j] >= 'a' && str[j] <= 'z') {
                        k = 1;
                    }
                    else if (str[j] == '.') {
                        f = 1;
                    }
                }
                if (f == 0) printf("Your password needs dian.\n");
                else if (k == 0) printf("Your password needs zi mu.\n");
                else if (c == 0) printf("Your password needs shu zi.\n");
                else printf("Your password is wan mei.\n");
    
            }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月18日
  • 已采纳回答 6月10日
  • 创建了问题 5月13日

悬赏问题

  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)