robertos18 Temat założony przez niniejszego użytkownika |
Sortowanie 5 liczb (7 porównań) » 2018-03-11 20:22:35 Witam mam problem z sortowaniem 5 liczb. Dla np: 12, 4, 5 ,3, 45, wypisuje mi złą kolejnosc Wzorowałem się na stronie http://users.uj.edu.pl/~ufkapano/algorytmy/lekcja11/sort3.html Czy dobrze zapisałem kod? #include <iostream> #include <algorithm>
using namespace std;
int main() { int L[ 5 ]; for( int i = 0; i < 5; ++i ) { cin >> L[ i ]; } if( L[ 0 ] > L[ 1 ] ) { swap( L[ 0 ], L[ 1 ] ); } if( L[ 3 ] > L[ 4 ] ) { swap( L[ 3 ], L[ 4 ] ); } if( L[ 1 ] > L[ 4 ] ) { swap( L[ 1 ], L[ 4 ] ); swap( L[ 0 ], L[ 3 ] ); } if( L[ 2 ] < L[ 1 ] ) { if( L[ 2 ] < L[ 0 ] ) { swap( L[ 2 ], L[ 1 ] ); swap( L[ 1 ], L[ 0 ] ); } else swap( L[ 1 ], L[ 2 ] ); } else if( L[ 2 ] > L[ 4 ] ) { swap( L[ 2 ], L[ 4 ] ); } if( L[ 3 ] < L[ 1 ] ) { if( L[ 3 ] < L[ 0 ] ) { swap( L[ 3 ], L[ 2 ] ); swap( L[ 2 ], L[ 1 ] ); swap( L[ 1 ], L[ 0 ] ); } else swap( L[ 3 ], L[ 2 ] ); swap( L[ 2 ], L[ 1 ] ); } else if( L[ 3 ] < L[ 2 ] ) { swap( L[ 2 ], L[ 3 ] ); } for( int i = 0; i < 5; ++i ) { cout << L[ i ] << " "; } return 0; }
|
|
pekfos |
» 2018-03-11 20:48:59 |
|
robertos18 Temat założony przez niniejszego użytkownika |
» 2018-03-11 21:25:48 debugger nic mi nie wykazał |
|
jankowalski25 |
» 2018-03-11 21:51:57 Na pewno? Dla ciągu testowego { 12, 4, 5, 3, 45 } jako { a, b, c, d, e } mamy raczej { b, a, c, d, e } , czyli { 4, 12, 5, 3, 45 } . Może najpierw nazwij zmienne int a, b, c, d, e; , a dopiero później podmień nazwy, jeśli jest taka konieczność? Lepiej najpierw używać takich nazw zmiennych, które są wygodne. Możesz również zdefiniować te pięć zmiennych jako referencje do poszczególnych elementów tablicy, a dopiero później to jakoś uogólnić na N elementów (jeśli w ogóle zajdzie taka potrzeba). debugger nic mi nie wykazał |
Co to znaczy, że debugger nic nie wykazał? Nie postawiłeś żadnych breakpointów, odpaliłeś debugger i dziwisz się, że nie znalazł błędów w programie, który się nie wysypuje? |
|
mateczek |
» 2018-03-12 05:59:46 debugger nic mi nie wykazał : ). Debugger jest od tego by wykonać program Krokowo to ty masz sprawdzić czy program wykonuje się zgodnie z twoim algorytmem. Jeśli rozumiesz idee tego co piszesz to prześledź krok po kroku debuggerem program a wyłapiesz gdzie program zachowuje się niezgodnie z oczekiwaniam. A jeśli tylko przepisujesz jakieś rozwiązania bezmyślnie to jest to bez sensu (bo ani wartości dydaktycznej ani praktycznego uzasadnienia takiego działania nie ma ). (Przy pomocy debuggera znajdziesz błąd tylko wtedy gdy wiesz co chciałeś osiągnąć i rozumiesz to co usiłowałeś napisać) W przeciwnym razie posortuj korzystając z gotowej implementacji. #include <iostream> #include<algorithm> using namespace std; int main() { int tablica[] = { 1, 3, 2, 8, 0, 4 }; sort( tablica, tablica + 5 ); for( size_t i = 0; i < 5; i++ ) cout << tablica[ i ] << " "; }
|
|
« 1 » |