Użycie niezainicjowanej zmiennej lokalnej "b"- MVS

0

Witam, jestem początkującym programistą C/C++ pisze sobie powiedzmy jakiś wielofunkcyjny program, tak po prostu dla ćwiczeń. Korzystam z dwóch programów na przemian CodeBlocks oraz MVS. I mam problem co do kompilowania niektórych programów, raczej bardziej podoba mi się MVS dlatego też częściej staram się z niego korzystać ale moja bolączka jest taka, że to co normalnie kompiluje mi się w CodeBlocks'ie, wygląda zupełnie inaczej w MVS. Prosty przykład z mojego programu, napisałem jakąś prostą funkcje, w której user musi zgadnąć liczbe, którą wylosuje komputer od 1-100 i błąd, który mi wywala podczas kompilowania programu w MVS nie pojawia mi się w CodeBlocks'ie. A sam błąd jest następujący: "użycie niezainicjowanej zmiennej lokalnej "b". Teraz pytanie dlaczego tak się dzieje? Przecież owa zmienna została przeze mnie zainicjowana, tak samo jak i użyta w poprawny sposób(chyba). Prosze o pomoc :)

}
void zgadnijliczbe()
{
	int a, b;
	srand(time(NULL));
	a = rand() % 100 + 1;
	cout << a << endl;
	while(a != b)
	{
			cout << "Zgadnij jaka liczbe wylosowal komputer (1-100)";
			cin >> b;
	}
	cout << "\n";
	cout << "Gratulacje zgadles liczbe";
}
1

pętla while() najpierw sprawdza warunek, a potem przechodzi do wykonywania instrukcji, a więc sprawdzasz czy a nie jest b, które jest niezainicjalizowane. Rozwiązaniem jest użycie pętli do while(), która najpierw (jak sama nazwa wskazuje) robi instrukcje, a na końcu sprawdza warunek, czyli zawsze wykona się co najmniej raz.

int a, b; //definicje zmiennych
a = rand() % 100 + 1; //inicjalizujesz zmienną a
while(a != b) //b nie ma wartości - albo się nie skompiluje, albo b będzie miało jakąś randomową, śmieciową wartość
   cin >> b; //dopiero tu inicjalizujesz b danymi z wejścia

skompilowało Ci się to dlatego, że niezainicjalizowane b przyjęło jakąś śmieciową wartość typu 5634404389 i teoretycznie jest to poprawne, bo sprawdzasz czy input nierówna się tej wartości :D

0

No to już wszystko jasne, dziękuje za wyjaśnienie i można zamknąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1