Witam! Napisałem program, który w domyśle miał sortować metodą bąbelkową. Jednak istnieje bardzo dziwny problem,którego nie mogę zlokalizować mianowicie dla dowolnych danych wejściowych np. 22, 21, 48 po posortowaniu wyrzuca wynik typu 3,21,22 albo 21,3,22 i nie mam bladego pojęcia czemu tak się dzieje. #include <iostream>
#include <algorithm>
using namespace std;
void BubbleSort(int tab[]);
void Wyswietl(int tab[]);
int main()
{
int iTab[3];
cout << "Sortowanie babelkowe" << endl;
cout << "Podaj 3 liczby: " << endl;
for (int i = 0; i < 3; i++)
{
cin >> iTab[i];
}
cout << "Przed sortowaniem: " << endl;
Wyswietl (iTab);
cout << "Po sortowaniu: " << endl;
BubbleSort(iTab);
Wyswietl(iTab);
return 0;
}
void BubbleSort(int tab[])
{
int n = sizeof(tab);
int temp = 0;
do {
for (int i = 0; i < n-1; i++)
{
if (tab[i] > tab[i+1])
{
swap(tab[i],tab[i+1]);
//temp = tab[i];
//tab[i] = tab[i+1];
//tab[i+1] = temp;
}
}
n = n - 1;
}while(n>1);
}
void Wyswietl(int tab[])
{
for (int i = 0; i < 3; i++)
{
cout << tab[i] << endl;
}
}