'else' without a previous 'if'

Programuje w języku C++ od niedawna i ostatnio gdy programowałem przy użyciu kursu na YouTubie. Gdy pisałem program tak jak we wskazaniach wystąpił problem.

‘else’ without a previous ‘if’

#include
#include
#include <time.h>

using namespace std;

int liczba, strzal;

int main()
{
cout << “Witej!” << endl;
cout << “Pomyslalem sobie liczbe z zakresu 1…100” << endl;
srand(time(NULL));
liczba = rand()%100+1;
cout <<liczba<<endl;

while(strzal!=liczba)
{
cout<<“Zgadnij jaka:”;
cin>>strzal;

if (strzal==liczba)
cout<<“Udalo ci sie!!!”<<endl;
cout<<“Wygrywasz!!!”<<endl;

else if(strzal<liczba)
cout<<“To za malo!”<<endl;
cout<<“Sprobuj ponownie.”<<endl;

else if (strzal>liczba)
cout<<“To za duzo!”<<endl;
cout<<“Sprobuj ponownie.”<<endl;

}
return 0;
}

Sprawdzałem ten problem n wielu forach polskich oraz zagranicznych również i na tym forum.
Próbowałem z różnymi nawiasami {} () [] wstawiać je w różne miejsca.
W pewnym momencie przepisałem nawet cły program.
Pomóżcie bardzo Proszę!!!

brakuje klamer w blokach if
powinno być:
if (strzal==liczba)
{
cout<<“Udalo ci sie!!!”<<endl;
cout<<“Wygrywasz!!!”<<endl;
}

else if(strzal<liczba)
{
cout<<“To za malo!”<<endl;
cout<<“Sprobuj ponownie.”<<endl;
}
else if (strzal>liczba)
{
cout<<“To za duzo!”<<endl;
cout<<“Sprobuj ponownie.”<<endl;
}

2 polubienia

A może tak :

if (wyrażenie) {
/* blok wykonany, jeśli wyrażenie jest prawdziwe /
}
/
dalsze instrukcje */
Istnieje także możliwość reakcji na nieprawdziwość wyrażenia - wtedy należy zastosować słowo kluczowe else:

if (wyrażenie) {
/* blok wykonany, jeśli wyrażenie jest prawdziwe /
} else {
/
blok wykonany, jeśli wyrażenie jest nieprawdziwe /
}
/
dalsze instrukcje */

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Instrukcja-warunkowa-if-else/16

mirante dzięki wielkie w końcu ktoś mi pomógł

Nie wiem jak ci dziękować jeszcze raz dzięki wielkie

Ogólnie klamry nie są wymagane, wówczas wykona się tylko jedna, kolejna instrukcja. Czyli Twój kod bez klamer wyglądał dla kompilatora tak samo jak:

while(strzal!=liczba)
{
cout<<“Zgadnij jaka:”;
cin>>strzal;

if (strzal==liczba){ // niejawny nawias
cout<<“Udalo ci sie!!!”<<endl;
} // koniec niejawnego nawiasu
cout<<“Wygrywasz!!!”<<endl;

else if(strzal<liczba) // blad, else bez ifa
cout<<“To za malo!”<<endl;
cout<<“Sprobuj ponownie.”<<endl;

else if (strzal>liczba) // j.w.
cout<<“To za duzo!”<<endl;
cout<<“Sprobuj ponownie.”<<endl;

}

Najlepiej zaopatrz się w IDE formatujące kod, w Eclipse taka funkcja jest pod ctrl+shift+f, to by od razu podpowiedziało w czym jest problem.