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

sortowanie bombelkowe tablicy 40 elementowej

Object Storage Arubacloud
0 głosów
193 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,000 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,000 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 (253,340 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ź 770 wizyt
+1 głos
1 odpowiedź 469 wizyt
pytanie zadane 13 grudnia 2020 w C i C++ przez XYZ!12 Nowicjusz (130 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...