1 / 46
Apr 2018

Mimo tego, że wszystkie przykłady w zadaniu poprawnie się wykonują, to sędzia ma jakieś problemy. Nie mam siły już do tego zadania - jakaś podpowiedź co robię źle?

[Kod usunięto]

  • created

    Apr '18
  • last reply

    Jun '21
  • 45

    replies

  • 2.8k

    views

  • 12

    users

  • 15

    likes

  • 9

    links

Nie, nie wszystkie przykłady, a właściwie to żaden - po prostu źle sprawdziłeś (jak należy poprawnie sprawdzać ?)

ale to prosty błąd, większym problemem jest, że nie przeczytałeś dokładnie treści zadania, więc wróć do treści zadania i uważnie przeczytaj :slight_smile:

również przeczytaj punkty 1-5 z mojego innego postu

Rzeczywiście - wcześniej warunek, który sprawdzał hasła był zły, a właściwie go nie było. Teraz jak widać wszystkie przykłady są poprawnie wykonywane, a sędzia nadal odrzuca…

Login:
od 3 do 12 znaków - jest;
tylko litery oraz cyfry - jest.

Haslo:
od 5 do 15 znaków - jest;
co najmniej jedna wielka, mała, cyfra i znak specjalny - jest.

Reszta chyba prawie na pewno się zgadza…

[Kod usunięty]

ładny kod :slight_smile:

ale w dalszym ciągu nie przeczytałeś dokładnie treści zadania (na pocieszenie dodam, że nie tylko ty)

Hmm chodzi o hasło?
Ma być conajmniej jedna wielka, mała i jedna cyfra i przynajmniej jeden znak specjalny, czy tylko jeden znak specjalny?

Nie wiem, może jestem upośledzony i nie potrafię czytać ze zrozumieniem, ale nie mam pojęcia o co może chodzić.

Zmieniłem warunek sprawdzania długości z && na ||, ale nadal dupa.

skoro mimo podpowiedzi nie znalazłeś błędu, to podpowiedź wysyłam jako prywatną - może jeszcze ktoś wpadnie w tę pułapkę :slight_smile: - jak już rozwiążesz problem, to usuń kod i nie chwal się co to było :slight_smile:

1 year later

Po wielu próbach niestety nie rozwiązałem zadania. Jeszcze coś gdzieś przeoczyłem, pomoże ktoś? Bo nie mam już kompletnie pomysłu co może być nie tak. Błąd "Błędna odpowiedź"
Kod

Edit:
Usunięcie kodu.

w treści:

  • login musi zawierać od 3 do 12 znaków, a hasło od 5 do 15

(hasło) to jest nieprawda w zadaniu są puste hasła, czyli login i brak hasła.
Jeżeli pobierasz dane cin >> login >> haslo to nie rozwiążesz zadania.

Ja miałem problem z tym zadaniem, zrobiłem getlinem sprawdzając czy są dwa wyrazy czy jeden i mam AC.

Test:

in:
register 2
jan HAslo12!@
kowalski
login 3
jan 123
jan HAslo12!@
kowalski HA12@wes

twój out:
Zarejestrowano
Blad

mój (AC) out:
Zarejestrowano
Blad
Zle haslo
Zalogowano
Konto nie istnieje

Udało mi się rozwiązać test powyżej jednak nadal wyskakuje błędna odpowiedź.
Kod:hide
Będę bardzo wdzięczny za inne ciekawe dane wejściowe :pray:

edit: usuniecie kodu.

Login musi zawierać od 3 do 12 znaków:

if (lo.length() <= 3 && lo.length() >= 12) { // błędny warunek

Musisz dostosować się do kolejności podanej w zadaniu. W przypadku rejestracji gdy podany zostanie zajęty login i błędne hasło musisz wypisać “Blad”, a nie “Login zajety”.

PS. Spróbuj skrócić trochę kod i rozdziel warstwę logiki od operacji IO.

20 days later

Dziękuje wszystkim za pomoc. Dopiero dzisiaj udało mi się usiąść do tego zadania i je zrobić. Udało się, jeszcze raz dziękuje za pomoc.
Dokładnie jak pisze hipcia - trzeba dostosować się do kolejności w zadaniu.

BTW. W próbach sędziego nie ma pustego hasła :wink:

2 months later

Proszę o podpowiedź dotyczącą tego zadania, już naprawdę mam mam dosyć a jestem zbyt uparty żeby sobie odpuścić. Mój kod https://pastebin.com/hEccTrmB20 oraz jeszcze zapytam czy tu może być problem z podawaniem wartości przez cin?

cout << "register ";
cin >> registerAttemps;

Na wejściu pojawi się nieokreślona liczba zestawów zawierająca słowa register/login - dlatego powinieneś wczytać stringa i wykonać podaną operację:

int attempts;
std::string command;
while (std::cin >> command >> attempts) {
    if (command == "register") {/*register*/}
    else if (command == "login") {/*login*/}
}

W funkcji main masz zdublowany fragment kodu. To wszystko :wink: