题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805266007048192
经验总结:
此题需要注意两点:
1、需要使用 getline(cin,s)的方式获取用户输入的密码,因为用户可能输入空格之类的。
2、题目说明“当错误尝试达到 N 次时,再输出一行 Account locked,并结束程序。” 注意这里说的是再输出一行,而不是下一个输入才判断是否锁定。
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
string pwd;
int n;
cin>>pwd>>n;
getchar();
while(true) {
string s;
getline(cin,s); //注意用户可能输入空格
if(s == "#") {
break;
}
if(pwd == s) {
cout<<"Welcome in"<<endl;
break;
} else {
cout<<"Wrong password: "<<s<<endl;
n--;
if(n<=0) { //在密码错误后就得判断此时次数用完没有,判断是否再输出一行锁定。
cout<<"Account locked"<<endl;
break;
}
}
}
return 0;
}