devc++编写密码。密码才输了一次就显示三次错误。这是什么原因啊

img


编写的程序,密码正确能使用。密码错误一次直接同时跳出来“密码错误,请重试”和“三次密码错误,退出系统”

if判断之后你return 0直接退出了

img

#include<stdio.h>
int main()/*主函数*/
 {
    int n;
    int i=0;
      char password[10]={0};
     for(i=0;i<3;i++)
         {
             //color(6);
             printf("请输入密码:\n");
             //color(7);
             scanf("%s",password);
             if(strcmp("123456",password)==0)
                  {
                       //color(10);
                       printf("密码正确,欢迎登陆!\n");
                       //color(7);
                       system("pause");
                       break;
                  }
             else
                  {
                      color(12);
                      printf("密码错误,请重试!\n");
                      color(7);

                if(i==2)
                    {
                        printf("三次密码输入错误,退出系统!\n");
                    }
                }
        }
    return 0;
}


img

首先你这个i应该是用来记录输入了几次错误密码的,但你在else部分并没有对i进行加1
其次既然判断三次密码错误就结束,那么你应该判断if(i>=3),而不是i<3啊。
所以修改方法是:
变量i定义的时候初始化为0
else语句中增加 i++;
if(i<3)改为if(i>=3),并且在三次输入失败提示后,增加break跳出循环

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632