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

[C++] Problem z sortowaniem bąbelkowym

Ostatnio zmodyfikowano 2015-11-30 21:22
Autor Wiadomość
Razner
Temat założony przez niniejszego użytkownika
[C++] Problem z sortowaniem bąbelkowym
» 2015-11-30 20:13:19
Chciałem dodać do jednego z zadań z kursu sortowanie bąbelkowe.
Szukałem pomocy na internecie ale nie mogę dojść dlaczego nie sortuje tablicy.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void wylosujLiczby( int tab[], int liczbwartab )
{
    srand( time( NULL ) );
    for( int i = 0; i < liczbwartab; i++ )
    {
        tab[ i ] =( std::rand() % 20 ) + 10;
    }
}
/*void wypiszTablice ( int tab[] , int liczbwartab)
{
for ( int i = 0 ; i < liczbwartab ; i++ )
    {
    cout<<tab [i]<<endl;
    }
}
void wypiszTabliceOdTylu  ( int tab[] , int liczbwartab)
{
for ( int i = liczbwartab-1 ; i >= 0 ; i-- )
    {
    cout<<tab [i]<<endl;
    }
}
int znajdzMinimum ( int tab[] , int liczbwartab )
{
int min = tab[0];
for ( int i = 0 ; i < liczbwartab ; i++ )
    {
    if(min>tab[i])
        {
        min=tab[i];
        }
    }
return min;
}
int znajdzMaksimum ( int tab[] , int liczbwartab )
{
int max = tab[0];
for ( int i = 0 ; i < liczbwartab ; i++ )
    {
    if(max<tab[i])
        {
        max=tab[i];
        }
    }
return max;
}
void wypiszMinMax (int Min, int Max)
{
cout<<"najmniejsza liczba to : "<<Min<<endl;
cout<<"najwieksza liczba to : "<<Max<<endl;
}*/
void zamien( int wieksza, int mniejsza )
{
    int a = wieksza;
    int b = mniejsza;
    mniejsza = a;
    wieksza = b;
}
void sortowanie( int tab[], int liczbwartab )
{
    for( int i = 0; i < liczbwartab; i++ )
    {
        for( int j = 0; j < liczbwartab - 1; j++ )
        {
            if( tab[ j ] > tab[ j + 1 ] )
                 zamien( tab[ j ], tab[ j + 1 ] );
           
        }
    }
    for( int i = 0; i < 10; i++ )
    {
        cout << "sortowanie: " << tablica[ i ] << endl;
    }
}

int main()
{
    int tablica[ 10 ];
    wylosujLiczby( tablica, 10 );
    // wypiszTablice( tablica, 10 );
    // wypiszTabliceOdTylu( tablica, 10 );
    sortowanie( tablica, 10 );
    // int iMin = znajdzMinimum( tablica, 10 );
    // int iMax = znajdzMaksimum( tablica, 10 );
    // wypiszMinMax( iMin, iMax );
    return 0;
}
PS: Mile widziane uwagi do reszty kodu :)
P-141194
carlosmay
» 2015-11-30 21:11:27
C/C++
void zamien( int & wieksza, int & mniejsza )
 skorzystaj z przekazania przez referencję, żeby zamiana dotyczyła przekazywanych elementów tablicy.
Bez tego zmienne przekazane są lokalne i po wyjściu z funkcji tracone, a oryginalne nie zmienione.
P-141196
Razner
Temat założony przez niniejszego użytkownika
» 2015-11-30 21:22:06
Dzięki teraz wszystko działa
Ps: jakby ktoś chciał kompilować to w wypisywaniu liczb przy sortowaniu powinno być tab a nie tablica taki mały bubel się wkradł :)
P-141198
« 1 »
  Strona 1 z 1