https://ideone.com/cJk8dP12 Przyjrzał by się ktoś co nie tak ?
Hmm, zazwyczaj takie rzeczy powodują takie rzeczy jak sięganie za tablicę i do niezadeklarowanych zmiennych. Ale po szybkim przejrzeniu nie widzę czegoś takiego Twoim w kodzie. Najbardziej podejrzana byla:
swap(wyniki[h], wyniki[h + 1]);
Wtedy można sobie do tablicy wcisnąć jakieś pozostałości, które stały bezpośrenio za nią jeśli się nie uważa z indeksem tablicy. Niestety nie widzę gdzie mógłby leżeć problem.
ależ skąd - wcale się nie zawiesza, tylko cały czas pracuje i nie chce skończyć
gdybyś czytała inne wątki, to byś przeczytała, że pisanie własnej procedury sortującej to proszenie się o kłopoty (zaś próba napisania własnej quicksoert to podwójne proszenie się o kłopoty)
przecież można użyć qsort() lub sort()
dodatkowo powinnaś jeszcze co najmniej raz dokładnie przeczytać treść zadania
Witam,
Twój kod zawiera dwa błędy:
- (WAŻNY BŁĄD) Próba odczytu danych znajdujących się poza zaalkowanym obszarem:
for (int j = 0; wsk[0]==wsk[j] ; ++j) {
Rozważ przypadek testowy nr 3:
2
1 1
- (WYCIEK PAMIĘCI) Brak zwolnienia zaalokowanej tablicy na końcu pętli.
Generalnie na ideone.com3 brakuje możliwości odpalenia kodu z debugowymi opcjami kompilacji typu:
g++ -fsanitize=address -fno-omit-frame-pointer -g -ggdb -lasan program.cpp
Odpalenie programu skompilowanego w taki sposób od razu by pokazało te problemy.
Pzdr.
Dla tego przypadku:
2
1 1
int * wsk=new int [2];
…
wsk jest tablica zawierajaca dwa elementy: [0]=1, [1]=1
…
pierwsze wywolanie petli j=0
:
wsk[0]==wsk[j]
// tu jest OK, ciało pętli wypisze 1
drugie wywolanie petli j=1
:
wsk[0]==wsk[j]
// tu jest OK, ciało pętli wypisze 1
trzecie wywolanie petli j=2
:
wsk[0]==wsk[j]
// no i sięgamy już poza zaalokowany obszar
To prawda, w tym tkwił problem. Ale teraz kilka uwag, nie mających żadnego wpływu, na AC na spoju:
Niestaranne formatowanie kodu: Formatowanie kodu, a także, strona do formatowania kodu: http://format.krzaq.cc3 . Ładnie można też formatować w swoim ulubionym IDE.
Używanie C++, ale też C, nie wymaga samodzielnego wymyślania koła, to korzystanie z gotowych struktur i algorytmów.
Super, że samodzielnie wymyśliłeś i napisałeś algorytm sortowania, ale jest on bardzo nieefektywny.
Mikro konkurs
- Czy potrafisz znaleźć test, dla którego kod @patrykos125 daje błędny wynik?
- Skoro program “sięga” do niezaalokowanej pamięci, to czy potrafisz wyjaśnić, czemu kod dostaje WA, a nie np SIGABORT?
Mikro Nagrody
:
Dla 3 najlepszych i najszybszych odpowiedzi, ewentualnie moje skromne prywatne konsultacje do wybranych kodów…
Oczywiście autor zadania jest wyłączony z pkt 1.
Wątek zablokowałem maksymalnie do końca roku, aby dać wszystkim równe szanse, więc odpowiedzi proszę wysyłaj do mnie na priv.
Suggested Topics
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
MBPROB01 - History version in plaintext pl.spoj.com | Zbiór zadań | 6 | 176 | Jul '24 |
FR_20_02 - Poszukiwacze skarbów - Błąd w testach? | Zbiór zadań | 1 | 98 | Apr 2 |
PP0504B - StringMerge - w języku C | Zbiór zadań | 5 | 206 | Jun '24 |
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 144 | Feb 1 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 148 | Jul '24 |