Witam,
Mam za zadanie napisać program generujący wszystkie permutacje zbioru {1,2,3,4,5} oraz wypisać ich łączną liczbę. Znalazłem w książce algorytm na ten problem zapisany w pseudokodzie i przepisałem go do C++, ale nie działa poprawnie, nie potrafię doszukać się błędu.
Kod celowo rozpisany dla zbioru {1,2,3}, żeby łatwiej było sprawdzać poprawność działania.
#include <iostream>
using namespace std;
int Tablica[3] = {1,2,3};
int i,j,x;
void odwroc(int m)
{
i = 1;
j = m;
while(i < j)
{
Tablica[i] = Tablica[j];
i++;
j--;
};
}
void antylex(int m)
{
if (m = 1){
for (x=0;x<=2;x++){
cout <<Tablica[x];
};
cout<<endl;
}
else{
for (i=1;i<=m;i++){
antylex(m-1);
if(i < m){
Tablica [i] = Tablica [m];
odwroc(m-1);
}
}
}
}
int main()
{
int m=3;
for(i=0;i<=2;i++){
Tablica[i] = i;
antylex(m);
};
getchar();
return 0;
};
Z góry dziękuje za pomoc.