• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sortowanie bombelkowe tablicy 40 elementowej

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
293 wizyt
pytanie zadane 17 maja 2020 w C i C++ przez KenoGamer12 Nowicjusz (120 p.)

Cześć

Jestem początkującym

mam pewien głupi problem :D

Ponieważ zrobiłem program który generuje 40 elementową tablice liczb losowych dwucyfrowych.

I chciałem dodać do niej sortowanie bombelkowe, dodałem i nie chce zadziałać mugłby ktoś na to spojrzeć i powiedzieć mi co jest źle 

Był bym bardzo wdzięczny

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int n=40;
int main()
{
    int tab[n];
    

    srand(time(NULL));
    for(int i=0; i<n; i++)
    {
        tab[i]=rand()%89+10;
    }
    void sortowanie_babelkowe(int *tab, int n)
{
    for(int i=1; i<n; i++)
    {
        for(int j=n-1; j>=1; j--)
        {
            if(tab[j]<tab[j-1])
            {
                int bufor;
                bufor=tab[j-1];
                tab[j-1]=tab[j];
                tab[j]=bufor;
            }
        }
    }
}
    for(int i=0; i<n; i++)
    {
    cout<<tab[i]<<"  ";
    if(i == 7) cout<<endl;
    if(i == 15) cout<<endl;
    if(i == 23) cout<<endl;
    if(i == 31) cout<<endl;
    }

    return 0;

}

 

2
komentarz 17 maja 2020 przez tkz Nałogowiec (42,060 p.)
Dlaczego wkleiłeś funkcję do maina? Od 18 do 33...
komentarz 17 maja 2020 przez KenoGamer12 Nowicjusz (120 p.)
A tak jak mógłbym się spytać to gdzie ją wkleić?
komentarz 17 maja 2020 przez KenoGamer12 Nowicjusz (120 p.)
Dobra jednak wiem już gdzie ją wkleić Dzięki.
komentarz 17 maja 2020 przez KenoGamer12 Nowicjusz (120 p.)

Kurde wkleiłem chyba tam gdzie powinno być, włącza się ale nie wiem dlaczego nie sortuje:((

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;
 void sortowanie_babelkowe(int *tab, int n)
{
    for(int i=1; i<n; i++)
    {
        for(int j=n-1; j>=1; j--)
        {
            if(tab[j]<tab[j-1])
            {
                int bufor;
                bufor=tab[j-1];
                tab[j-1]=tab[j];
                tab[j]=bufor;
            }
        }
    }
}

int n=40;

int main()
{
    int tab[n];


    srand(time(NULL));
    for(int i=0; i<n; i++)
    {
        tab[i]=rand()%89+10;
    }

    for(int i=0; i<n; i++)
    {
    cout<<tab[i]<<"  ";
    if(i == 7) cout<<endl;
    if(i == 15) cout<<endl;
    if(i == 23) cout<<endl;
    if(i == 31) cout<<endl;
    }

    return 0;

}

 

komentarz 17 maja 2020 przez Mya Bywalec (2,790 p.)
Tablica nie jest sortowana, bo nie używasz funkcji, którą dodałeś...

Na końcu programu wywołaj funkcję sortowanie_babelkowe przekazując do niej tablicę, a później ponownie wypisz zawartość tablicy (pętla).
komentarz 17 maja 2020 przez tkz Nałogowiec (42,060 p.)
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;
void sortowanie_babelkowe(int* tab, int n)
{
    for (int i = 1; i < n; i++)
    {
        for (int j = n - 1; j >= 1; j--)
        {
            if (tab[j] < tab[j - 1])
            {
                int bufor;
                bufor = tab[j - 1];
                tab[j - 1] = tab[j];
                tab[j] = bufor;
            }
        }
    }
}
int n = 40;
int main()
{
    int tab[n];


    srand(time(NULL));
    for (int i = 0; i < n; i++)
    {
        tab[i] = rand() % 89 + 10;
    }
    cout<<"przed\n";
    for (int i = 0; i < n; i++)
    {
        cout << tab[i] << "  ";
        if (i == 7)
            cout << endl;
        if (i == 15)
            cout << endl;
        if (i == 23)
            cout << endl;
        if (i == 31)
            cout << endl;
    }
    cout<<"\npo\n";
    sortowanie_babelkowe(tab, n);//gdzieś musisz jej uzyc, cnie
    for (int i = 0; i < n; i++)
    {
        cout << tab[i] << "  ";
        if (i == 7)
            cout << endl;
        if (i == 15)
            cout << endl;
        if (i == 23)
            cout << endl;
        if (i == 31)
            cout << endl;
    }

    return 0;
}

 

komentarz 17 maja 2020 przez KenoGamer12 Nowicjusz (120 p.)
Dzięki za pomoc zadziałało :))

1 odpowiedź

+2 głosów
odpowiedź 18 maja 2020 przez VBService Ekspert (256,600 p.)
edycja 18 maja 2020 przez VBService

Proponuję taką małą modyfikację kodu.

Dodanie dwóch funkcji.

void wypisz_tablice( int tablica[], int ile )
{
    int linia = 1;
    for( int indeks = 0; indeks < ile; indeks++ )
    {
         cout << tablica[ indeks ] << " ";
         if ((linia + indeks) % 10 == 0) cout << endl;
    }
}

void wprowadz_dane_losowe(int* tablica, int ile)
{
    srand(time(NULL));
    for( int indeks = 0; indeks < ile; indeks++ )
    {
        tablica[indeks] = rand() % 89 + 10;
    }
}

... i przez to zmiana w main()

int main()
{
    int n = 40;
    int tab[n];
 
    wprowadz_dane_losowe(tab, n);
    cout<<"przed\n";
    wypisz_tablice(tab, n);
    cout<<"\npo\n";
    sortowanie_babelkowe(tab, n);//gdzieś musisz jej uzyc, cnie
    wypisz_tablice(tab, n);
 
    return 0;
}

całość wink

#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
void sortowanie_babelkowe(int* tab, int n)
{
    for (int i = 1; i < n; i++)
    {
        for (int j = n - 1; j >= 1; j--)
        {
            if (tab[j] < tab[j - 1])
            {
                int bufor;
                bufor = tab[j - 1];
                tab[j - 1] = tab[j];
                tab[j] = bufor;
            }
        }
    }
}

void wypisz_tablice( int tablica[], int ile )
{
    int linia = 1;
    for( int indeks = 0; indeks < ile; indeks++ )
    {
         cout << tablica[ indeks ] << " ";
         if ((linia + indeks) % 10 == 0) cout << endl;
    }
}

void wprowadz_dane_losowe(int* tablica, int ile)
{
    srand(time(NULL));
    for( int indeks = 0; indeks < ile; indeks++ )
    {
        tablica[indeks] = rand() % 89 + 10;
    }
}

int main()
{
    int n = 40;
    int tab[n];
 
    wprowadz_dane_losowe(tab, n);
    cout<<"przed\n";
    wypisz_tablice(tab, n);
    cout<<"\npo\n";
    sortowanie_babelkowe(tab, n);//gdzieś musisz jej uzyc, cnie
    wypisz_tablice(tab, n);
 
    return 0;
}

do sprawdzenia: tutaj

 

Podobne pytania

0 głosów
1 odpowiedź 900 wizyt
+1 głos
1 odpowiedź 663 wizyt
pytanie zadane 13 grudnia 2020 w C i C++ przez XYZ!12 Nowicjusz (130 p.)

93,439 zapytań

142,431 odpowiedzi

322,677 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...