Problem raczej banalny, jednak półgodzinne wpatrywanie się w kod nie przyniosło skutku.
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
// [0] [1] [2] [3] [4] [5]
int tab[]={ 5, 6, 4, 2, 1, 3},bufor;
bool spr[]={ 0, 0, 0, 0, 0};
do
{
for (int i=0; i<=4; i++)
{
if (tab[i]>tab[i+1])
{
spr[i]=0;
bufor=tab[i];
tab[i]=tab[i+1];
tab[i+1]=bufor;
}
else if (tab[i]<tab[i+1])
{
spr[i]=1;
}
}
}while((spr[0]=0)||(spr[1]=0)||(spr[2]=0)||(spr[3]=0)||(spr[4]=0));
for (int i=0; i<=5; i++)
{
cout<<tab[i];
}
cout<<endl<<endl;
system ("PAUSE");
return EXIT_SUCCESS;
}
Tablica spr (bool) spełnia funkcję sprawdzającą czy szereg liczb jest już uporządkowany - i jeśli nie, nakazuje powtórzenie cyklu. Niestety, za każdym razem wykonuje się tylko jeden cykl sortowania mimo że warunek kontynuowania pętli jest spełniony. Dla sprawdzenia zastosowałem "ręczne" wykonanie cyklu 10 razy, aby sprawdzić czy dobrze zapisałem całe sortowanie i wszystko było OK. Z góry dziękuję za pomoc.