• 1067 试密码


    当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死。本题就请你实现这个小功能。

    输入格式:

    输入在第一行给出一个密码(长度不超过 20 的、不包含空格、Tab、回车的非空字符串)和一个正整数 N(≤ 10),分别是正确的密码和系统允许尝试的次数。随后每行给出一个以回车结束的非空字符串,是用户尝试输入的密码。输入保证至少有一次尝试。当读到一行只有单个 # 字符时,输入结束,并且这一行不是用户的输入。

    输出格式:

    对用户的每个输入,如果是正确的密码且尝试次数不超过 N,则在一行中输出 Welcome in,并结束程序;如果是错误的,则在一行中按格式输出 Wrong password: 用户输入的错误密码;当错误尝试达到 N 次时,再输出一行 Account locked,并结束程序。

    输入样例 1:

    1. Correct%pw 3
    2. correct%pw
    3. Correct@PW
    4. whatisthepassword!
    5. Correct%pw
    6. #

    输出样例 1:

    1. Wrong password: correct%pw
    2. Wrong password: Correct@PW
    3. Wrong password: whatisthepassword!
    4. Account locked

    输入样例 2:

    1. cool@gplt 3
    2. coolman@gplt
    3. coollady@gplt
    4. cool@gplt
    5. try again
    6. #

    输出样例 2:

    1. Wrong password: coolman@gplt
    2. Wrong password: coollady@gplt
    3. Welcome in

     

    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. int main(){
    4.     string s,a;int n,i=0;
    5.     cin>>s>>n;
    6.     getchar();//这个必须加,即使运行结果是对的,提交评测会答案错误,加的原因是输入一个整数后,后面有字符
    7.     while(getline(cin,a)){
    8.  
    9.         if(a=="#")break;//先判断循环结束条件,然后再计数
    10.          i++;
    11.         
    12.         if(s==a&&i<=n){cout<<"Welcome in\n";break;}//相等且次数没超过限制,然后必须跳出
    13.         else if(i<=n&&s!=a) cout<<"Wrong password: "<<a<<endl;//不相等且次数没超过限制
    14.          
    15.         if(i==n){cout<<"Account locked\n";break;}//这里有个测试点,原来我以为是超出限制才会输出这个语句,后面发现它是相等于限制的时候,把当前这个错误密码输出后再追加锁定。
    16.     }
    17.     return 0;

  • 相关阅读:
    iwebsec靶场 数据库漏洞通关1-MySQL数据库漏洞
    工业控制应用程序二进制的秘密
    非常小的一个东西,Spring依赖注入Bean类型的8种情况
    程序环境、预处理和宏
    linux文件的隐藏属性
    Mysql8关键字
    转岗项目经理后,我是如何管理项目的。
    Ajax交互扩展
    基于ssm+mysql+jsp作业管理(在线学习)系统
    基于FDB方法的供给需求优化算法改进——基于工程设计问题的综合研究
  • 原文地址:https://blog.csdn.net/m0_51863774/article/details/127647901