wskaźniki - zadanie z kursu
Ostatnio zmodyfikowano 2018-07-23 15:22
sair Temat założony przez niniejszego użytkownika |
» 2018-07-13 22:45:25 Dobra, nie wiem, nie rozumiem tego. Dzięki za pomoc |
|
pekfos |
» 2018-07-15 11:30:05 Zrobiłeś tak int i = 0; for( i; i < 10; ++i ) std::cout << i;
for( i; i < 10; ++i ) std::cout << i; a może powinieneś tak for( int i = 0; i < 10; ++i ) std::cout << i;
for( int i = 0; i < 10; ++i ) std::cout << i; |
|
mik2mik |
» 2018-07-23 12:15:24 Twój kod działa tylko na pierwszym elemencie, który spełnia warunek if. Aby tablica została posortowana powinno wprowadzić się rekurencje, tak by po wykonaniu funkcji swap posortować ponownie od początku tablicy do zmienionego adresu. void sortuj( int * begin, int * end ) { int pomoc = 1; int *temp = begin; while( pomoc != 0 ) { pomoc = 0; for( begin; begin <( end - 1 ); begin++ ) { if( * begin > *( begin + 1 ) ) { swap( * begin, *( begin + 1 ) ); sortuj(temp, begin+1); pomoc++; }; };
}; } |
|
mateczek |
» 2018-07-23 15:22:35 Aby tablica została posortowana powinno wprowadzić się rekurencje |
metod sortowania jest wiele można i rekurencyjnie. Ala jak już było wspomniane w poradach wyżej główny problem kodu to uszkadzanie zmiennej begin. (wystarczy ją zabezpieczyć i będzie dizałało) void sortuj( int * _begin, int * end ) { int pomoc = 1; while( pomoc != 0 ) { pomoc = 0; int * begin = _begin; for(; begin <( end - 1 ); begin++ ) { if( * begin > *( begin + 1 ) ) { swap( * begin, *( begin + 1 ) ); pomoc++; }; }; }; }
Oczywiście można by pomyśleć nad lepszym nazwaniem zmiennych. np zamiast "pomoc" zmienną nazwać ""swapCoutner" aby było jasne że jej zadaniem jest liczenie ile razy w obiegu pętli wystąpiła zamiana |
|
1 2 « 3 » |