Pętla while

0

Hej,

Otóż mam dwa stosy liczb, liczby te będą się do siebie dodawać .. gdy jeden stos okaże się dłuższy od drugiego to wtedy do tego krótszego dopisuję 0 aby długość była taka sama. Czyli mój program powinien kończy działanie kiedy oba stosy będą puste ..
I tu pojawia się problem z tym aby poprawnie sformułować warunek dla while ..
bo gdy mam coś takiego :

while(!stos.jestPusty() && !stos2.jestPusty()){
i tu wykonuje się reszta
}

niby nie wyświetla wtedy błędów ale program uruchamia się, uruchamia i po kilku minutach nadal próbuje się uruchomić .. stąd też myślę, że coś mam z tą pętlą ..
Mam jeszcze dwa if'y w pętli dla dodawania tych 0 :

if(stos.jestPusty() && !stos2.jestPusty()){
- to tutaj dodaje do stosu 0;
}
if(!stos.jestPusty() && stos2.jestPusty()){
- i tutaj dodaje do stosu2 0;
}

Za wszelkie uwagi, wskazówki będę wdzięczny.

0

Rozumiem że dotknęła cię reforma edukacji i o logice nie słyszałeś?

while(!stos.empty() || !stos2.empty()){ //dopóki na którymkolwiek stosie jest jakaś liczba
  if(stos.empty()){
    suma+=stos2.pop();
  }else if(stos2.empty()){
    suma+=stos.pop();
  }else{
    suma+=stos.pop() + stos2.pop();
  }
}

(ale nie widzę powodu żebym podany przez ciebie kod blokował program, chyba że nie zdejmujesz ze stosu...)

0

Gdy chciałem przetestować działanie kodu dla 1 obrotu ( bez pętli while) to mi ładnie wyświetliło wynik ..
ogólnie rzecz biorąc mam coś takiego :

.........
int el = (Integer)stos.odczytajPierwszy();
int e2 = (Integer)stos2.odczytajPierwszy();
// tu mam dodawanie, działanie z % (bo potrzebuję reszty) i działanie z / (bo potrzebuje cyfry dziesiątek)
stos.usunPierwszy(); // 
stos2.usunPierwszy();

i mimo to nadal program próbuje się uruchomić ....

ps.
Bo ogólnie chodzi oto, że jak dodam pierwsze liczby ze stosów, to potem cyfra jedności tej sumy ma pojawić się w stosie trzecim, a cyfra dziesiątek zostaje dodana do kolejnej sumy..

0

Wstaw w takim razie caly kod na pastebina jakiegoś, bo z fusów ci nie wywróżę. W kodzie który podałeś nie ma błędu, więc jest gdzieś indziej.

0

Kod wydaje się ok. Sprawdź czy nie ma jakiegoś błędu w stosie.

0

Błąd był w stosie :) dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0