1067ロードテスト用パスワードのPAT Bブラシタイトル(20点)

1067テストコード(20ポイント)

あなたがシステムにログオンしようとするが、パスワードを忘れたときは、回数を許可外の限られた回数を試すことができ、システムは、通常は、アカウントがロックされます。この質問はあなたにこのシンプルな機能を要求します。

入力フォーマット
(以下20の長さは、スペースなし、タブ入力し、空でない文字列)最初の行に示されているパスワードを入力し、それぞれN整数正(≤10)、および正しいパスワードシステム試行回数が許可されます。各後続行は、キャリッジリターンを有する非空の文字列が終了すると、パスワードを入力するユーザの試みを与えられています。入力は、少なくとも最初の試みを確保します。唯一の#文字が1行を読んだとき、終了を入力して、この行は、ユーザーの入力ではありません。

出力フォーマット:
ユーザの各入力、それはより多くのN、行の出力ようこそ、及びプログラムを終了より正しいパスワードと試みている場合、それは間違っている場合、その行の形式の出力が間違ってパスワードを押す:ユーザ間違ったパスワードが入力され、しようとすると、エラーが到達N回、その後、出力ラインアカウントがロックされ、プログラムを終了します。

サンプル入力1:
正しい3%PW
PW%正しい
PW @正しい
Whatisthepassword!
正しい%PW

输出样例1:
間違ったパスワード:正しい%PW
間違ったパスワード:PW @正しい
間違ったパスワード:whatisthepassword!
アカウントがロックされました

入力サンプル2:
。GPLT @クール3
Coolman @ GPLT
coollady @ GPLT
@クールGPLT
トライアゲイン

出力サンプル2:
間違ったパスワード:Coolman @ GPLT
間違ったパスワード:coollady @のGPLTは
で購入可能です

ピットは、ユーザ入力がスペースを含むことができるということですここでは言いませんでした。したがって、使用のgetline

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string Code;
	int N;
	cin>>Code>>N;
	getchar();
	string changshi;
	int count=0;//错误次数 
	while(count<N){
		getline(cin,changshi);
		count++;
		if(changshi.compare("#")==0) break;
		if(changshi==Code){
			cout<<"Welcome in"<<endl;
			break;
		}else{
			cout<<"Wrong password: "<<changshi<<endl; 
		}
		if(count==N){
			cout<<"Account locked"<<endl;
			break;
		}
	}
	return 0;
}
公開された73元の記事 ウォンの賞賛0 ビュー521

おすすめ

転載: blog.csdn.net/derbi123123/article/details/103834281