//edit wersja alternatywna pytanie.2
Co mi się wydaje : Pętla do while jest wykonywana do momentu w którym na koniec pętli zamienione = false. Żeby było to możliwe na początku każdej kolejki ustawiam zamienione=false a polecenie ewentualnej zmiany jest w petli for
pętla for oznacza jeżeli choć jeden element tablicy jest większy od kolejnego zamienia je miejscami i zamienione=true co skutkuje powtórzeniem do while.
W pewnym momencie tablica jest uporządkowana zamienione ma wartość null ale pętla się nie kończy dlaczego?
Wydaje mi się, że większość kompilatorów C++ wywala minimum warninga. Nie ignoruj ostrzeżeń a w przyszłości będziesz miał mniej problemów.
To dawaj stałą po lewej stronie
Polecam !
Re: [c++] nie działa if else
: 11 maja 2017, o 23:35
autor: shreder221
oO żadnych ostrzeżeń nie było do zignorowania :p a nawet gdyby były nie potrafiłbym ich ominąć inaczej niż naprawiając błędy a używam Dev c++ A objawem błędu była nieskończona pętla po wykonaniu for
mortan517 pisze:To dawaj stałą po lewej stronie, gdy zechcesz napisać kod typu:
chyba sprawa zmęczenia ale nie rozumiem co masz na myśli. Najpierw piszesz żeby pisać żeby zamienić kolejność stała<--> zmienna a następnie żeby tego nie robić bo będzie błąd chyba że zapomniałeś o "nie" . Jeśli tak to wtedy nie trzeba pisać "=="?
Re: [c++] nie działa if else
: 12 maja 2017, o 00:30
autor: mortan517
Usystematyzujmy, jeżeli chcesz porównać to zawsze piszesz podwójny znak "równa się". Ale załóżmy teraz, że się pomyliłeś i dajesz pojedynczy znak oznaczający przypisanie. I teraz jak po lewej stronie dawałbyś zawsze stałą, to kod się nie skompiluje, a jak dasz zmienną to niestety kompilator to puści, ale powinien zasygnalizować to jakimś ostrzeżeniem. Czyli generalnie po lewej stronie warto dawać stałe, bo jak się pomylisz to kompilacja nie przejdzie.
Re: [c++] nie działa if else
: 13 cze 2017, o 17:48
autor: Rozbitek
Jeżeli każesz mu wyskoczyć z pętli "sztucznie", to prawdopodobnie program jest do przebudowy.