ac**
當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。
輸入格式:
輸入在第一行給出乙個密碼(長度不超過 20 的、不包含空格、tab、回車的非空字串)和乙個正整數 n(≤ 10),分別是正確的密碼和系統允許嘗試的次數。隨後每行給出乙個以回車結束的非空字串,是使用者嘗試輸入的密碼。輸入保證至少有一次嘗試。當讀到一行只有單個 # 字元時,輸入結束,並且這一行不是使用者的輸入。
輸出格式:
對使用者的每個輸入,如果是正確的密碼且嘗試次數不超過 n,則在一行中輸出welcome in,並結束程式;如果是錯誤的,則在一行中按格式輸出wrong password:使用者輸入的錯誤密碼;當錯誤嘗試達到 n 次時,再輸出一行account locked,並結束程式。
輸入樣例 1:
correct%pw 3
correct%pw
correct@pw
whatisthepassword!
correct%pw
輸出樣例 1:
wrong password: correct%pw
wrong password: correct@pw
wrong password: whatisthepassword!
account locked
輸入樣例 2:
cool@gplt 3
coolman@gplt
coollady@gplt
cool@gplt
try again
輸出樣例 2:
wrong password: coolman@gplt
wrong password: coollady@gplt
welcome in
1、注意一行密碼輸入中,可以有空白字元,此時應該輸入整行
2、當錯誤次數為 n 時立即輸出 account locked
scanf("%[^\n]", str_try[i]);%[^\n]表示除了 換行符號 都可以 存入 字串 c中
如果僅為\n也不會被跳過,不會像%s那樣被當做還未輸入這個字串,而是被寫為空字串
輸入時,此題輸入正確密碼的時候直接用%s即可,在判斷密碼是才需要考慮是否為空字串(輸入的密碼為空的情況)並使用%[^\n]
輸出時不可用%[^\n](因為輸入的時候就沒存\n),直接用%s輸出空白字串即可
void
scn(
)return
;}
#include
#include
#include
using namespace std;
char str[25]
, str_try[30]
[25];
//密碼
int n;
bool pan
(int i)
return false;
}else
}void
scn(
)return;}
intmain()
B1067 試密碼 20 分
當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入格式 輸入在第一行給出乙個密碼 長度不超過 20 的 不包含空格 tab 回車的非空字串 和乙個正整數 n 10 分別是正確的密碼和系統允許嘗試的次數。隨後每行給出乙個以...
PAT乙級B1067 試密碼 (20 分)
當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入在第一行給出乙個密碼 長度不超過 20 的 不包含空格 tab 回車的非空字串 和乙個正整數 n 10 分別是正確的密碼和系統允許嘗試的次數。隨後每行給出乙個以回車結束的...
1067 試密碼(20 分)
1067 試密碼 20 分 當你試圖登入某個系統卻忘了密碼時,系統一般只會允許你嘗試有限多次,當超出允許次數時,賬號就會被鎖死。本題就請你實現這個小功能。輸入在第一行給出乙個密碼 長度不超過 20 的 不包含空格 tab 回車的非空字串 和乙個正整數 n 10 分別是正確的密碼和系統允許嘗試的次數。...