sortowanie babelkowe c++

0

Napisz program który wygeneruje i wypisze liczby losowe z przedziału [20,50], a następnie posortuje i wypisze je rosnąco od najmniejszej do największej
błagam pomocy, jestem początkujący i nie mogę sobie z tym poradzić

0

A w czym konkretnie masz problem? Co już zrobiłeś?

0

Mam zrobione tak ale nie chce mi sortować i nie wiem gdzie jest błąd:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
const int N=5;
int tabela [N] ={5,4,3,2,1};
void losuj (int a, int b) {
srand (time(NULL)) ;
for(int i=0; i<N;i++) tabela[i] = a+ rand() % (b-a+1);
}
void wypisz (){
for(int i=0; i<N; i++) cout << tabela[i] << ", ";
cout << endl;
}
void babelek()
{
for (int i=0; i<N-1; i++) if ( tabela[i] > tabela[i+1] ) swap( tabela[i], tabela[i+1] );
}
void sortuj_bab()
{
for (int j=0; j<N-1; j++) babelek();
}
int main()
{
losuj (20,50);
wypisz();

sortuj_bab();

wypisz();

return 0;
}

0

🤷 U mnie działa:

/home/althorion/CLionProjects/deleteme/cmake-build-debug/deleteme
27, 45, 50, 34, 30, 
27, 30, 34, 45, 50, 

Kod ma trochę problemów (niepotrzebnie przelatujesz już posortowaną część tablicy; nazewnictwo funkcji jest słabe, sposób generowania liczb pseudolosowych niepoprawny, itd.), ale samo sortowanie wygląda na działające — tzn. nie udało mi się wygenerować kontrprzykładu.

Na jakich wartościach się wysypuje? Co Ci mówi debugger?

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