Nie widzę tu (w twoim programie) rozwiązania, ale to to co wydaje się osobliwe:
- zaraz po zamknięciu bloku if(str==1) otwierasz drugi, identyczny.
- wprowadzanie 1. i 2. strony jest niemal identyczne. Dlaczego więc zdublowałeś kod wprowadzania? Możesz przez to pominąć coś przy wprowadzaniu poprawek. Zamiast stawiać warunków odwołuj się do indeksów [str] tablic.
- nie rozróżniaj nazw zmiennych wyłącznie za pomocą wielkości liter, bo najpewniej w końcu doprowadzi cię to do trudnych do wykrycia pomyłek w kodzie.
- nie przyzwyczajaj się do pisania 100 == 100. Wystarczy zostawić pusty nawias lub choć wstawić po prostu 1, 100 czy true. Porównywanie wartości to też operacja dla komputera.
A tu w działaniu:
- przy wprowadzaniu znaków dla str==2 wprowadza je do [1][licznik]. Nie powinno być analogicznie do reszty [2]?
- W równaniu kolejność wyrażeń nie jest dowolna. Nie możesz więc przyjąć takiego zapisu, bo nie zapamiętuje on kolejności wszystkich wyrażeń, a jedynie oddzielnie liczb bez niewiadomej i z niewiadomą.
Zauważ kilka ważnych rzeczy:
- Liczba (lub wyrażenie z niewiadomą) może być ujemne lub dodatnie i NIE jest to operacja.
- Odejmowanie można traktować jako dodawanie wyrażenia ujemnego.
- Dzielenie można traktować jako mnożenie liczby odwrotnej, więc a/b = a*(1/b).
Zostaje więc tylko dodawanie lub mnożenie + zapis w ramach wyrażenia, że jest one ujemne i/lub odwrotne. Oczywiście to mój koncept.
Kolejność wykonywania działań jest bardzo ważna - aby twój dalszy program mógł przetworzyć równanie, należy grupować wyrażenia, czyli stosować zapis taki, jak gdyby były w nim nawiasy:
((a*b)+((c*d)*e))+g = h
Powyższe jest zapisem równoznacznym z
a*b+c*d*e+g = h
Jeżeli równanie będzie rozpatrywane od lewej do prawej, czyli
((((a*b)+c)*d)*e)+g = h
w prawie żadnym wypadku nie zostanie poprawnie rozwiązane...
Można więc przyjąć, że zapis ten jest w pewien sposób "drzewiasty". Odpowiednie więc wydaje się drzewo.
Na naszym przykładzie:
http://tinypic.com/r/23l13ir/7
(Oczywiście chcą tak odwzorowywać niezbędna jest znajomość przynajmniej prostych struktur i wskaźników.)