bubble sort - tablica dynamiczna

0

Cześć, w ramach ćwiczeń staram się przekazać stan tablicy poprzez funkcję, ale zdefiniowałem ją jako dynamiczną wiec funkcja nie może pobrać jej wielkości.
Ktoś może nakierować jak mogę to ogarnąć?

#include <iostream>


using namespace std;

int main()
{
    int wielkosc;
    cout<<"podaj wielkość tablicy: "<<endl;
    cin>>wielkosc;

    int*tablica= new int[wielkosc];
    int i;

    for(i=0;i<wielkosc;i++)
    {
        cout<<"wartość elemntu tablica["<<i<<"]: ";
        cin>>tablica[i];
    }

    cout<<"elemnty tablicy przed posortowaniem: ";

    for(i=0; i<wielkosc; i++)
    {
        cout<<tablica[i]<<", ";
    }
    cout<<endl;



    PokazPoPosortowaniu();

    return 0;

}
    void PokazPoPosortowaniu(int wielkosc)
    {
        for (int i=0; i<wielkosc-1; i++)
            for (int j = wielkosc-1; j>1; --j)
            if(tablica[j-1]>tablica[j])
            swap(tablica[j],tablica[j-1]);

        cout<<"elemnty tablicy po posortowaniu: ";
        for(int i=0; i<wielkosc; i++)
            {
            cout<<tablica[i]<<", ";
            }
    }




3

Przekaż do funkcji jej welkość.

3

Czemu nie przekazujesz wskaźnika na tablicę do funkcji? Rozdziel drukowanie od sortowania i nadaj jakieś sensowne nazwy tym metodom.

0

Zrobiłem w ten sposób i coś nie działa. Może nie działa dlatego, że wielkość tablicy ustalam dynamicznie, a nie na sztywno? Kończą mi się pomysły
Jak uda mi się to rozkminić to podzielę na drukowanie i sortowanie

#include <iostream>

using namespace std;

int main()
{
    int wielkosc;
    cout<<"podaj wielkość tablicy: "<<endl;
    cin>>wielkosc;

    int*tablica= new int[wielkosc];
    int i;

    for(i=0;i<wielkosc;i++)
    {
        cout<<"wartość elemntu tablica["<<i<<"]: ";
        cin>>tablica[i];
    }

    cout<<"elemnty tablicy przed posortowaniem: ";

    for(i=0; i<wielkosc; i++)
    {
        cout<<tablica[i]<<", ";
    }
    cout<<endl;

    wypisz(tablica, wielkosc);

    return 0;

}
    void wypisz(int *t, int w)
    {
        for (int i=0; i<w-1; i++)
            for (int j = w-1; j>1; --j)
            if(t[j-1]>t[j])
            swap(t[j],t[j-1]);

        cout<<"elemnty tablicy po posortowaniu: ";
        for(int i=0; i<w; i++)
            {
            cout<<t[i]<<", ";
            }
    }
2

Co się dzieje, jakie błędy?

1

działa, thx Panowie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1