wskaźniki - zadanie z kursu
Ostatnio zmodyfikowano 2018-07-23 15:22
sair Temat założony przez niniejszego użytkownika |
wskaźniki - zadanie z kursu » 2018-07-11 23:22:39 witam, przedstawiam kod do zadania domowego z kursu o wskaźnikach który niestety nie działa tak jak należy, proszę o pomoc w lokalizacji błędu :) #include <string> #include <fstream> #include <iostream> #include <conio.h> using namespace std;
void sortuj( int * begin, int * end ) { int pomoc = 1; while( pomoc != 0 ) { pomoc = 0; for( begin; begin <( end - 1 ); begin++ ) { if( * begin > *( begin + 1 ) ) { swap( * begin, *( begin + 1 ) ); pomoc++; }; }; }; }
void wypisz( int * begin, int size ) { while( size > 0 ) { std::cout << * begin << ' '; ++begin; --size; } }
int main() { int tab[ 10 ] = { 0, 9, 1, 3, 8, 2, 6, 7, 5, 4 }; sortuj( tab, tab + 10 ); wypisz( tab, 10 ); _getch(); return 0; } |
|
pekfos |
» 2018-07-12 00:32:25 Drugi i każdy następny przebieg tej pętli nic nie zmienia. Prześledź wartości zmiennej begin. |
|
sair Temat założony przez niniejszego użytkownika |
» 2018-07-12 19:20:14 jakieś sugestie jak z tego wybrnąć? |
|
pekfos |
» 2018-07-12 20:08:51 A do jakich wniosków doszedłeś po mojej podpowiedzi? Jeśli w ogóle zidentyfikowałeś problem, to na tym etapie kursu rozwiązanie powinno być oczywiste. |
|
sair Temat założony przez niniejszego użytkownika |
» 2018-07-12 20:46:35 niestety, nie udało mi się zidentyfikować błędu kombinowałem coś z if'em ale nie udało mi się rozwiązać problemu |
|
pekfos |
» 2018-07-12 21:27:44 Jaką wartość ma begin na początku drugiego obiegu pętli while? |
|
sair Temat założony przez niniejszego użytkownika |
» 2018-07-12 21:47:56 0056F848 <- 1 obieg 0056F86C <- 2 obieg 0 1 3 8 2 6 7 5 4 9
nie rozumiem czemu pętla wykonuje się tylko dwa razy i dlaczego za drugim razem różnica to 24 bajty :/ |
|
pekfos |
» 2018-07-12 21:53:33 A end - 1 to ile? i dlaczego za drugim razem różnica to 24 bajty :/ |
Ale masz na myśli 0x24 bajty..? |
|
« 1 » 2 3 |