#include
using namespace std;
int main()
{
int a,b;
char liczba;
cout<<"Podaj pierwsza liczbe "<
cin>> a;
cout<<"Podaj druga liczbe "<
cin>> b;
cout<<"Co chcesz zrobic "<
cout<<"1 - dodawanie"<
cin>>liczba;
if (liczba == 1)
cout<
else if (liczba==2)
cout<
else if (liczba==3)
cout<
else if (liczba==4)
if (b==0)
cout<<"Nie dziel przez zero ";
else
cout<
else
cout<<"Nie wiem co podales ";
system ("pause>nul");
}[/code]
Program się kompiluje ale nie działa. Pozwala wpisać liczby ale jak coś wybiorę zawsze pokazuje ostatnie else. Próbowałem debugować ale wychodzą jakieś dziwne wartości i nie wiem nadal gdzie jest błąd.
Prościej było by zrealizować to za pomocą switch()
Jeśli jednak upierasz się na if i else to musisz dodać klamry (nawet sporo) :
if (liczba == 1)
cout<
else
{ if (liczba==2)
cout<
else
{ if (liczba==3)
cout<
else
{ if (liczba==4)
{
if (b==0)
cout<<"Nie dziel przez zero ";
else
cout<
}
else
cout<<"Nie wiem co podales ";
}
}
}
system ("PAUSE");
}[/code]
Nie mam pod ręką kompilatora, więc nie wiem czy nie popełniłem błędów. Poza tym ja też dopiero się uczę więc mogłem coś pomieszać.
Rzeczywiście, przepraszam za sianie herezji. :oops:
Napisałem tak, ponieważ miałem obiekcje jak zostanie potraktowany ostatni else w tym programie. Zainstalowałem z ciekawości Dev’a i okazuje się, że nie ma z tym problemu. Program działa zarówno z klamrami jak i bez nich.
#include
using namespace std;
int main()
{
int a,b;
int liczba; // <-------------- tu zmienione
cout<<"Podaj pierwsza liczbe "<
cin>> a;
cout<<"Podaj druga liczbe "<
cin>> b;
cout<<"Co chcesz zrobic "<
cout<<"1 - dodawanie"<
cin>>liczba;
if (liczba == 1)
cout<
else if (liczba==2)
cout<
else if (liczba==3)
cout<
else if (liczba==4)
if (b==0)
cout<<"Nie dziel przez zero ";
else
cout<
else
cout<<"Nie wiem co podales ";
system ("pause>nul");
}
[/code]
lub wykorzystując podpowiedź [alex] możesz napisać :
#include
using namespace std;
int main()
{
int a,b;
char liczba; // zostawiasz deklaracje typu char
cout<<"Podaj pierwsza liczbe "<
cin>> a;
cout<<"Podaj druga liczbe "<
cin>> b;
cout<<"Co chcesz zrobic "<
cout<<"1 - dodawanie"<
cin>>liczba;
if (liczba == '1') // tu pamietasz o umieszczeniu znaku w ' '
cout<
else if (liczba=='2') // tu pamietasz o umieszczeniu znaku w ' '
cout<
else if (liczba=='3') // tu pamietasz o umieszczeniu znaku w ' '
cout<
else if (liczba=='4') // tu pamietasz o umieszczeniu znaku w ' '
if (b==0)
cout<<"Nie dziel przez zero ";
else
cout<
else
cout<<"Nie wiem co podales ";
system ("pause>nul");
}
[/code]