題目鏈接:https://pintia.cn/problem-sets/994805260223102976/problems/994805266007048192
題目描述
當你試圖登錄某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。
輸入
輸入在第一行給出一個密碼(長度不超過 20 的、不包含空格、Tab、回車的非空字符串)和一個正整數 N(≤ 10),分別是正確的密碼和系統允許嘗試的次數。隨後每行給出一個以回車結束的非空字符串,是用戶嘗試輸入的密碼。輸入保證至少有一次嘗試。當讀到一行只有單個 # 字符時,輸入結束,並且這一行不是用戶的輸入。
輸出
對用戶的每個輸入,如果是正確的密碼且嘗試次數不超過 N,則在一行中輸出 Welcome in,並結束程序;如果是錯誤的,則在一行中按格式輸出 Wrong password: 用戶輸入的錯誤密碼;當錯誤嘗試達到 N 次時,再輸出一行 Account locked,並結束程序。
樣例輸入
Correct%pw 3
correct%pw
Correct@PW
whatisthepassword!
Correct%pw
樣例輸出
Wrong password: correct%pw
Wrong password: Correct@PW
Wrong password: whatisthepassword!
Account locked
代碼
#include <iostream>
#include <string>
using namespace std;
int main() {
string ans, str;
int n, t = 0;
cin >> ans >> n;
getchar();
while(1) {
getline(cin, str);
if(t == n) {
printf("Account locked\n");
break;
}
if(str == "#")
break;
if(str == ans) {
printf("Welcome in\n");
break;
}
else
cout << "Wrong password: " << str << endl;
t++;
}
return 0;
}