Odpowiedź
Program i przykładowe uruchomienie znajdują się w PDF-ie, który załączyłam jako ostatni załącznik.
W pierwszych trzech załącznikach zrzuty ekranu pokazujące początek kodu źródłowego, aby można było wygodnie – tu na forum – zobaczyć jak wygląda główna część.
Wprawdzie można by napisać program w którym byłaby większa dowolność wyboru znaków z każdej kategorii, ale byłoby to mniej losowe. A co najważniejsze dużo więcej pisania... :)
Wyjaśnienie
Program powinien może być i ponad dwa razy dłuższy. Brak w nim wielu elementów, które uznałam że nie będą potrzebne do uzyskania dobrej oceny...
- brak sprawdzania czy wprowadzane dane są prawidłowego typu;
- brak sprawdzania czy wprowadzane dane mieszczą się we właściwym zakresie;
- komunikaty programu nie są w języku polskim, co wprawdzie w Code::Blocks jest bardzo proste do zrobienia, ale wtedy program wygląda mniej typowo, a dodatkowo nie wiem jaką Ty masz wprawę w używaniu UTF-8 w środowisku Code::Blocks...
- polecenie wypisania haseł jest oczywiście bardzo proste i nie uwzględnia w ogóle tego, że hasła mogą być bardzo długie, a terminal typowo ma tylko 80 znaków;
- do generowania haseł powinien być użyty inny generator liczb losowych (ale już przygotowałam program w tym kierunku tworząc funkcje!);
- komentarze są minimalne.
Skąd wzięłam 64 znaki? Z testów :) na dosyć szybkim komputerze.
Koniecznie popatrz na podobny program, komentarze i przykładowe uruchomienie, które napisałam jako odpowiedź do Twojego kolejnego pytania na ten sam temat
https://brainly.pl/zadanie/21371227