Hej, jestem totalnie początkującym, chciałem napisać prosty lecz paradoksalnie rozbudowany w miarę możliwości kalkulator. Budowa w miarę prosta, funkcja void dla podania liczb do zmiennych, kolejna funkcja void do całej części z obliczeniami na tych liczbach, i funkcja main zawierająca początek i koniec programu, i która tylko się do void'ów odnosi. I tu coś nie działa. Pod koniec kodu mam pytanie, "czy chcesz spróbować ponownie", "NIE"- wyłącza, "TAK"- powinno wracać do funkcji void liczby ().
Za pierwszym przelotem programu wszystko działa jak należy, ale przy każdym ponownym "spróbowaniu ponownie" funkcja void liczby() działa dobrze, ale potem program pomija funkcję void odpowiedzialną za obliczenia i od razu po podaniu liczb pyta "czy chcesz spróbować ponownie".
To zmieniona wersja, wcześniej nie używałem void'ów, ale wszystko było w main(), wtedy musiałem używać dwóch goto, przez co postanowiłem to zmienić. Na jednym main() i goto działało, teraz po rozdzieleniu nie. Zastanawia mnie czemu za pierwszym przelotem działa, a potem pomija odniesienie do void obliczenie().
Będę bardzo wdzięczny kiedy ktoś pomoże mi zrozumieć na czym polega problem, co jest nie tak?
Problem jest właśnie taki jak w tym fragmencie. Widać odniesienia do void'ów. Ale po restarcie TAK i wykonaniu funkcji "liczby", pomija funkcję "obliczenia"...
Pełny kod około 180 linijek: http://wklej.org/id/2946625/
liczby();
obliczenie();
do
{
Sleep (900);
cout << "Czy chcesz zaczac ponownie? (Tak/Nie)" << endl;
cin >> y;
Sleep (150);
if ((y=="NIE")||(y=="nie")||(y=="Nie"))
{
Sleep (150);
system ("cls");
exit(0);
}
else if ((y=="TAK")||(y=="tak")||(y=="Tak"))
{
Sleep (250);
system ("cls");
liczby();
}
else
{
system ("cls");
cout << "Nie ma takiej odpowiedzi!";
Sleep (900);
system ("cls");
}
}
while (y!="Tak"||"tak"||"TAK"||"Nie"||"NIE"||"nie");