Podczas sortowania na początek liczb ułożonych malejąco wchodzi dziwnie wielka liczba.
#include <iostream>
using namespace std;
void sortowanie(int **tab, size_t *ile)
{
int *wsk;
int bufor;
wsk = &bufor;
for(int u = 0; u < 2; ++u)
{
for(int i = 0; i < *ile; ++i)
{
for(int j = 0; j < *ile; ++j)
{
if(u == 0)
{
if(*(*(tab + u) + j) > *(*(tab + u) + j+1))
{
*wsk = *(*(tab + u) + j+1);
*(*(tab + u) + j+1) = *(*(tab + u) + j);
*(*(tab + u) + j) = *wsk;
}
}
else if(u == 1)
{
if(*(*(tab + u) + j) < *(*(tab + u) + j+1))
{
*wsk = *(*(tab + u) + j+1);
*(*(tab + u) + j+1) = *(*(tab + u) + j);
*(*(tab + u) + j) = *wsk;
}
}
}
}
}
cout << endl << endl;
cout << "Liczby posortowane rosnaca: ";
for(int k = 0; k < *ile; ++k)
{
cout << *(*(tab + 0) + k) << ", ";
}
cout << endl << endl;
cout << "Liczby posortowane malejaco: ";
for(int l = 0; l < *ile; ++l)
{
cout << *(*(tab + 1) + l) << ", ";
}
}
int main()
{
size_t ile;
cout << "Ile liczb chcesz posortowac?: ";
cin >> ile;
int **tab = new int*[2];
tab[0] = new int[ile];
tab[1] = new int[ile];
for(int i = 0; i < ile; ++i)
{
cout << "Podaj " << i+1 << " liczbe: ";
cin >> *(*(tab + 0)+ i);
*(*(tab + 1)+ i) = *(*(tab + 0)+ i);
}
typedef void (*wskaznik_na_funkcje)(int**, size_t*);
wskaznik_na_funkcje wsk = sortowanie;
wsk(tab, &ile);
delete [] tab;
return 0;
}
http://zapodaj.net/2563ff1761041.png.html