Strona 1 z 1

[c++] nie działa if else

: 10 maja 2017, o 21:48
autor: shreder221
Dobry wieczór
Mógłby mi ktoś powiedzieć dlaczego w przypadku niespełnienia warunku tab>tab[i+1] else nie kończy pętli do while?
Ukryta treść:    
cały program
Ukryta treść:    

//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?
Ukryta treść:    

Re: [c++] nie działa if else

: 10 maja 2017, o 22:35
autor: Gouranga
klamry się nie zgadzają

Re: [c++] nie działa if else

: 10 maja 2017, o 22:48
autor: shreder221
liczyłem kilka razy i nie widzę żadnych brakujących nawiasów

Re: [c++] nie działa if else

: 11 maja 2017, o 08:42
autor: Afish

Kod: Zaznacz cały

while(zamienione=true);
Brakuje drugiego znaku =.

A lepiej zapisać to jako

Kod: Zaznacz cały

while(zamienione)

[c++] nie działa if else

: 11 maja 2017, o 11:02
autor: shreder221
super działa w 90% programów robię takie idiotyczne błędy których nie mogę potem znaleść przez kilka h ;(

co do wersji skróconej zawsze zapominam czy zapis ten oznacza 1 czy 0 więc go unikam

Dzięki za pomoc

Re: [c++] nie działa if else

: 11 maja 2017, o 11:12
autor: mortan517
To dawaj stałą po lewej stronie, gdy zechcesz napisać kod typu:

Kod: Zaznacz cały

while(true=zamienione)
to kompilator zaprotestuje.

Re: [c++] nie działa if else

: 11 maja 2017, o 21:59
autor: miki999
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:

Kod: Zaznacz cały

while(true=zamienione)
to kompilator zaprotestuje.
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.