Salve ragazzi...questo che vi posto è un programma per generare tutte le permutazioni di un vettore di caratteri...è abbastanza comprensibile da leggere...ma ho un problema..che anche se a me sembra tutto giusto...funziona solo alcune volte, ma non sempre...anzi...sn più le volte che nn lo fa!...da osservare che questo mio metodo di creare le permutazioni non le crea tutte in ordine..ma le crea mischiate insomma!....il problema è che nn riesco a trovare l'eventuale errore dove posso aver sbagliato.....se qualcuno di voi può aiutarmi per favore...o se ha una idea migliore mi risponda...vi ringrazio!:)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void scambia (char*, char*);
void stampa(char [], int );
int main()
{
int i,j,k,conta=0;
int len;
char parola[]={"frt"};
len=strlen(parola);
for ( i=0; i<len ; i++ )
{
for ( j=0; j<len ; j++)
{
for ( k=j+1; k<len ; k++)
{ scambia(&parola[j],&parola[k]);
stampa(parola,len);
conta++;
}
}
}
printf("\n\n");
printf("Le permutazioni possibili sono: %d\n\n",conta);
system("pause");
}
void scambia (char *a, char*b)
{
char tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void stampa(char v[], int dimensione)
{ int i;
printf("\n\n");
for (i=0;i<dimensione;i++)
printf("%c",v);
}