Witam!
Ostatnio zacząłem uczyć się programowania z kursu na stronie cpp0x.pl. Mam problem z zadaniem domowym, którego treść brzmi tak:
Przez większość zadanie przeszedłem bez problemu,jednakże po usunięciu kilku błędów i uruchomieniu programu pojawił się problem. Cały czas wyświetlał mi się taki sam wynik programu niezależnie jakiego działania użyłem. Proszę o pomoc! Kod:
#include
using namespace std;
int main()
{
int wynik;
char dzialanie;
char liczba;
liczba=1;
bool good1;
bool fail1;
bool good2;
bool fail2;
bool good3;
bool fail3;
int a;
int b;
cout<<"Twój wynik to:"<
cout<<"Podaj liczbę a: "<
cin>>a;
good1=cin.good();
fail1=cin.fail();
cin.clear();
cin.sync();
cout<<"Podaj liczbę b: "<
cin>>b;
good2=cin.good();
fail2=cin.fail();
cin.clear();
cin.sync();
cout<<"Wybierz działanie:"<
cout<<"1 dodawanie"<
cout<<"2 mnoźenie"<
cout<<"3 odejmowanie"<
cout<<"4 dzielenie"<
cout<<"5 nic nie rób"<
cin>>dzialanie;
good3=cin.good();
fail3=cin.fail();
cin.clear();
cin.sync();
switch(dzialanie)
{
case 1:
{
wynik=a+b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 2:
{
wynik=a*b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 3:
{
wynik=a-b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 4:
{
wynik=a/b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 5:
{
std::cout<<"Twój wynik to:"<
liczba--;
break;
}
}
if ( false == good1&&good2&&good3 )
{
liczba++;
}
if ( true == fail1||fail2||fail3 )
{
liczba++;
}
do
{
cout<<"Twój wynik to:"<
cout<<"Podaj liczbę a: "<
cin>>a;
good1=cin.good();
fail1=cin.fail();
cin.clear();
cin.sync();
cout<<"Podaj liczbę b: "<
cin>>b;
good2=cin.good();
fail2=cin.fail();
cin.clear();
cin.sync();
cout<<"Wybierz działanie:"<
cout<<"1 dodawanie"<
cout<<"2 mnoźenie"<
cout<<"3 odejmowanie"<
cout<<"4 dzielenie"<
cout<<"5 nic nie rób"<
cin>>dzialanie;
good3=cin.good();
fail3=cin.fail();
cin.clear();
cin.sync();
liczba--;
switch(dzialanie)
{
case 1:
{
wynik=a+b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 2:
{
wynik=a*b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 3:
{
wynik=a-b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 4:
{
wynik=a/b;
std::cout<<"Twój wynik to:"<
liczba++;
break;
}
case 5:
{
std::cout<<"Twój wynik to:"<
liczba--;
break;
}
}
if ( false == good1&&good2&&good3 )
{
liczba++;
}
if ( true == fail1||fail2||fail3 )
{
liczba++;
}
}while(liczba);
return 0;
}