char bk[11]; //zeichenkettenspeicher
int eingabeb() //NICHT C KONFORM, kannste aber durch printf und scanf ersetzen....
{
cout<<endl<<"Bitte Zeichenkette zur Permutation eingeben(max. 10 Zeichen) : ";
cin>>bk;
for(int i = 0; bk[i] != '\0'; i++); //zählt die zeichenanzahl
cout<<endl<<"eingelesen : "<<bk[9]<<bk[8]<<bk[7]<<bk[6]<<bk[5]<<bk[4]<<bk[3]<<bk[2]<<bk[1]<<bk[0]<<endl;
return i;
}
int maxcheck(int anzahl)
{
return faku(anzahl);
}
int faku(int anzahl)
{
if(anzahl == 0)
return(1);
else
return(anzahl*faku(anzahl-1));
}
void swap(int anzahl, int max) //PERMUTATION
{
int puffer, k = 0;
while(k != max)
{
for(int i = 0; i < anzahl-1; i++)
{
ausgabe(anzahl); //<------ HIER kannst du die aktuelle PERMUTATION entnehmen, einfach abspeichern oder sonstwas mit machen
puffer = zk[i];
zk[i] = zk[i+1];
zk[i+1] = puffer;
k++;
}
}
}
void ausgabe(int anzahl)
{
for(int i = 0; i < anzahl; i++)
printf("%c ",zk[i]);
}
void main()
{
int max, anzahl;
char buf;
anzahl = eingabeb(); //anzahl ist die anzahl der zu permutierenden zeichen
max = maxcheck(anzahl); //berechnet anzahl der swaps
swapb(anzahl, max);
}