[C++]Prośba o sprawdzenie przyczyny niedziałania programu

Witam!

Napisałem prosty programik do zgadywania liczby, którą wylosuje komputer, ale chyba coś przedobrzyłem a nie mogę zrozumieć o co chodzi z błędem. Proszę więc o pomoc co jest nie tak.

Kod programu:

http://wklej.org/id/129218/

Błędy:

http://wklej.org/id/129219/

Nie pisałem w C++ całe lata, ale pierwsze, co rzuca mi się w oczy, to brak break; na końcu każdego przypadku case w stwitch.

Czy nie lepiej byłoby wrzucić też { } na rozpoczęcie i zakończenie każdego bloku?

Faktycznie break nie było, ale dzięki temu nie pozbyłem się problemu.

http://wklej.org/id/129263/
int aWprowadzona;

Co to jest?

Wyrzuć i będzie dzialać, to samo dla każdego case.

Po pierwsze “int main”. Po drugie chyba potrafisz przeczytać komunikat błędu? “initialization of ‘aWylosowana’ is skipped by ‘case’ label”. Domyślam się, że chodzi o to, że inicjalizujesz zmienne wewnątrz bloku case, a wykonanie tego kodu jest warunkowe. Możesz dodać klamry {} wokół przypadków case, tworząc tym samym nowy zakres leksykalny. Jednak ja radzę całkowicie przepisać kod (w ramach ćwiczenia, bo widzę, że to jakiś kurs C++. Chyba niezbyt dobry jeśli taki kod pojawił się w nim). Zobacz ile masz tam powtarzającego się kodu, każdy przypadek case to praktycznie ten sam kod. Wystarczą Ci pojedyncze zmienne: wylosowana, zgadywana, zgadywana_min, zgadywana_max - pozbędziesz się w ten sposób całego bloku switch, a kod będzie wielokrotnie krótszy. No i jeszcze radzę więcej uwagi przyłożyć do formatowania kodu, wcięcia sprawiają, że ten jest bardziej czytelny.

Pisałem o dwóch rzeczach, nie tylko o break-u …