當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入在第一行給出乙個密碼(長度不超過 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
cool@gplt 3
coolman@gplt
coollady@gplt
cool@gplt
try again
#
wrong password: coolman@gplt
wrong password: coollady@gplt
welcome in
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include //string9 #include 10 #include 11 #include 12 #include 13
using
namespace
std;
1415
intmain()
16
35}
36else
37
41}
42return0;
43 }
首發測試點2、5錯。猜測是使用者輸入的密碼裡可能不小心帶有了空格等。於是改用getline()輸入,結果全部答案錯誤。在輸入正確密碼和次數後用getchar()吸收回車就解決。其次,發現pta其實是個不是很苛刻的oj (可能是我認知太少造成的片面誤解)。
使用getline()前要用getchar()吸收回車。
1067 試密碼(20 分)
1067 試密碼 20 分 當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入在第一行給出乙個密碼 長度不超過 20 的 不包含空格 tab 回車的非空字串 和乙個正整數 n 10 分別是正確的密碼和系統允許嘗試的次數。...
1067 試密碼(20 分)
1067 試密碼 20 分 當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入在第一行給出乙個密碼 長度不超過 20 的 不包含空格 tab 回車的非空字串 和乙個正整數 n 10 分別是正確的密碼和系統允許嘗試的次數。...
1067 試密碼 (20 分)
1067 試密碼 20 分 當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入在第一行給出乙個密碼 長度不超過 20 的 不包含空格 tab 回車的非空字串 和乙個正整數 n 10 分別是正確的密碼和系統允許嘗試的次數。...