代码无法给出预期的结果,堆栈循环

时间:2019-10-22 18:14:21

标签: c

我是一名学生,并且我目前在学习C时没有太多编程经验,我一直在尝试创建一个程序来接收用户的“密码”,然后继续检查密码是否至少具有一个字母,数字和特殊字符。我写了一些代码,但在努力寻找问题所在时却没有得到预期的结果。

如果我输入“只是数字”密码或“只是特殊字符”,则返回“您错过了一个字母”就可以了

如果我输入的是“只是字符”密码,它不会返回任何内容,对于包含所有3个字符的普通密码一样。

那是代码:

int main()
{
   char a[20];
   int b = 0 ,c = 0,d=0;
   printf("Please type your password and make sure it contains a letter a number and a special character:");
   scanf("%s",a);
   while(b<=20){                                                    
        if(isalpha(a[b])){
            break;
            while(c<=20){                                              
                if(isdigit(a[c])){
                    break;
                    while(d<=20){                                  
                        if(isalpha(a[d]) || isdigit(a[d])){
                           d++; continue;                         
                        }else{
                            printf("Congratulations your Password has been saved\n");
                            }
                        } printf("You missed a special character\n");
                }else{c++; continue;}                               
            }
            printf("You missed a number\n");
        }else{b++; continue;}                                      
}
(b>20) ? printf("You missed a letter\n") : printf("");
    return 0; 
}

0 个答案:

没有答案