PAT Nivel B-Test Password

Descripción del tema
Cuando intenta iniciar sesión en un sistema pero olvida la contraseña, el sistema generalmente solo le permite intentarlo un número limitado de veces. Cuando se excede el número de tiempos permitidos, la cuenta se bloqueará.

Esta pregunta le pide que implemente esta pequeña función.

Formato de entrada
Ingrese una contraseña y un número entero positivo N en la primera línea, que son la contraseña correcta y el número de intentos permitidos por el sistema.
Cada línea subsiguiente da una cadena no vacía que termina con un retorno de carro, que es la contraseña que el usuario está intentando ingresar.
Cuando solo una línea de lectura #cuando finaliza la entrada de caracteres, y esta línea no es la entrada del usuario.

Se garantiza que la entrada tendrá al menos un intento.
La contraseña es una cadena no vacía de no más de 20, sin espacios, tabulación o retorno de carro

Formato de salida
Para cada entrada del usuario,

  • Si es la contraseña correcta y el número de intentos no excede N, salga en una línea Welcome iny finalice el programa;
  • Si es incorrecto, emita en el formato en una línea Wrong password: 用户输入的错误密码;
  • Cuando el número de intentos de error llega a N veces, se emite otra línea Account lockedy el programa finaliza.

Ejemplo de entrada 1
Correcto% pw 3
correcto% pw
Correcto @ PW ¿
Cuál es la contraseña?
Correcto% pw

输出 样例 1
Contraseña incorrecta: correcta% pw
Contraseña incorrecta: Corregir @ PW
Contraseña incorrecta: ¿cuál es la contraseña?
Cuenta bloqueada

Muestra de entrada 2
cool @ gplt 3
coolman @ gplt
coollady @ gplt
cool @ gplt
inténtalo de nuevo


Ejemplo de salida 2 Contraseña incorrecta: coolman @ gplt
Contraseña incorrecta: coollady @ gplt
Bienvenido a

Rango de datos
N ≤ 10



Simulación de solución de problemas :

细节: Si el número se lee cuando la primera fila, una segunda fila con una getlinelectura en la cadena, con la primera getcharfiltrada 换行, de lo contrario leerá una línea en blanco;

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

int main()
{
    
    
	int limit;
	string password, str;
	
	cin >> password >> limit;
	getchar();                                              // 过滤换行
	
	int cnt = 0;
	while(getline(cin, str), str != "#")
	{
    
    
		if(str == password) 
		{
    
    
			cout << "Welcome in" << endl;
			break;
		}
		else
		{
    
    
			cnt ++;
			cout << "Wrong password: " << str << endl;
			if(cnt == limit)
			{
    
    
				cout << "Account locked" << endl;
				break;
			}
		}
	}
	
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_46239370/article/details/114378452
Recomendado
Clasificación