R. 43 Wskaźniki - zadanie domowe
Ostatnio zmodyfikowano 2020-01-01 20:14
Yumox Temat założony przez niniejszego użytkownika |
R. 43 Wskaźniki - zadanie domowe » 2019-12-31 19:16:45 Cześć, udało mi się wykonać zadanie domowe i chciałem zapytać czy funkcja sortuj() jest poprawnie napisana: void sortuj( int * begin, int * end ) { int liczba; for(; begin != end - 1; begin++ ) { for( int * p = begin + 1; p != end; p++ ) { if( * begin > * p ) { liczba = * begin; * begin = * p; * p = liczba; } } } }
|
|
pekfos |
» 2020-01-01 14:53:38 W zasadzie begin = end też jest poprawnym przypadkiem. Powinieneś używać < zamiast !=. |
|
Yumox Temat założony przez niniejszego użytkownika |
» 2020-01-01 19:55:27 A czy begin = end to już nie wykroczenie poza tablice? W 1 przypadku z tego zadania end to adres już nie naszej tablicy a w 2 należy do tablicy ale wartość -100 już nas nie interesuje wiec po co ma się wykonywać w jednym i drugim przypadku? I dlaczego < zamiast !=? W przykładzie w kursie pojawia się != dlatego chce się upewnić. |
|
pekfos |
» 2020-01-01 20:10:20 A czy begin = end to już nie wykroczenie poza tablice? |
W tym wypadku zakres do posortowania jest pusty. Chodzi o przypadek a nie o uwzględnienie *end w sortowaniu. dlaczego < zamiast !=? W przykładzie w kursie pojawia się != dlatego chce się upewnić. |
Na wskaźnikach działają wszystkie operatory porównania. Używa się takich, jakie pasują do konkretnego przypadku, a nie jeden który akurat był w kursie. Tak jak napisałeś te pętle, nie zadziałają z != dla przypadku który podałem. |
|
Yumox Temat założony przez niniejszego użytkownika |
» 2020-01-01 20:14:11 Ok, już rozumiem. Dzięki |
|
« 1 » |