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

wskaźniki - zadanie z kursu

Ostatnio zmodyfikowano 2018-07-23 15:22
Autor Wiadomość
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
P-171852
pekfos
» 2018-07-15 11:30:05
Zrobiłeś tak
C/C++
int i = 0;
for( i; i < 10; ++i )
     std::cout << i;

for( i; i < 10; ++i )
     std::cout << i;
a może powinieneś tak
C/C++
for( int i = 0; i < 10; ++i )
     std::cout << i;

for( int i = 0; i < 10; ++i )
     std::cout << i;
P-171866
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++;
            };
        };

    };
}
P-171935
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)

C/C++
void sortuj( int * _begin, int * end ) {
    int pomoc = 1;
    while( pomoc != 0 )
    {
        pomoc = 0;
        int * begin = _begin; //tutaj
        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
P-171937
1 2 « 3 »
Poprzednia strona Strona 3 z 3