Algorytm odejmowania pisemnego C++
Ostatnio zmodyfikowano 2018-01-15 13:50
AndrosX Temat założony przez niniejszego użytkownika |
Algorytm odejmowania pisemnego C++ » 2018-01-14 18:03:21 Cześć. Mam mały problem otóż napisałem algorytm odejmowania pisemnego w liscie dwukierunkowej. Algorytm działa ale jedynie gdy ilość cyfr w liczbie jest ta sama lub maksymalnie o jeden mniejsza. W przypadku większej różnicy (np odejmowanie 500-2) nie działa tak jak powinno. Ktoś jest w stanie mi wskazać gdzie jest błąd?
Lista Lista::operator -( Lista &L) { Lista w; int i, j, p, r; i=this->ileJest; j=L.ileJest; int n=i; if(j<i) n=j; p=0; for(int k=1; k<=n; k++) {
p=this->ogon->dane-L.ogon->dane; if(p<0) { r=p+10; w.wstaw(r); this->ogon=this->ogon->poprz; L.ogon=L.ogon->poprz;
ogon->dane=ogon->dane-1;
} else { w.wstaw(p); this->ogon=this->ogon->poprz; L.ogon=L.ogon->poprz; } i--; j--; } while(i>0) {
r=this->ogon->dane;
this->ogon=ogon->poprz; w.wstaw(r); i--; }
while( j>0) {
r=L.ogon->dane+p;
L.ogon=L.ogon->poprz; w.wstaw(r); j--; } return w;
} |
|
DejaVu |
» 2018-01-14 20:58:30 wyrównaj listę krótszą do listy dłuższej. |
|
AndrosX Temat założony przez niniejszego użytkownika |
» 2018-01-14 21:51:03 Przepraszam ale niestety nadal nie mam pomysłu jak rozwiązać ten problem. Widzę, że algorytm odejmuje jedynkę od liczby przedostatniej zamiast przechodzić dalej jednak nie wiem co z tym zrobić... |
|
darko202 |
» 2018-01-15 13:50:26 1. zacznij od przeczytania http://cpp0x.pl/kursy/Porady-dla-uzytkownikow-cpp0x-pl/Zakladanie-tematow-na-forum/483zwłaszcza "Formatowania treści za pomocą dostępnych znaczników" 2. nie umieściłeś żadnego komentarza, który podpowiedziałby nam jak wygląda budowa listy czyli też jak zapisujesz np. Odjemnik przypuszczam się może jest to np. dla 500 5 głowa 0 .. 0 ogon 3. algorytm jest zawiły przypuszczam, że może problem wynika z linii ogon->dane = ogon->dane - 1;
p = this->ogon->dane - L.ogon->dane;
this->ogon->dane L.ogon->dane
ale mogę się mylić 4. Zapoznaj się z techniką debugowania kodu pozwoli Ci to śledzić każdy krok programu w tym oglądać stan wszystkich zmiennych - monitorować zmiany zmiennych |
|
« 1 » |