Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

R. 43 Wskaźniki - zadanie domowe

Ostatnio zmodyfikowano 2020-01-01 20:14
Autor Wiadomość
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:
C/C++
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;
            }
        }
    }
}
P-175907
pekfos
» 2020-01-01 14:53:38
W zasadzie begin = end też jest poprawnym przypadkiem. Powinieneś używać < zamiast !=.
P-175909
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ć.
P-175917
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
C/C++
sortuj( a, a );
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.
P-175918
Yumox
Temat założony przez niniejszego użytkownika
» 2020-01-01 20:14:11
Ok, już rozumiem. Dzięki
P-175919
« 1 »
  Strona 1 z 1