ciao a tutti.
Devo scrivere una funzione che generi le permutazioni di un vettore char. Ho scritto questo:
Codice PHP:
#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[]={"123"};
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("%d Anagrammi\n\n",conta);
system("pause");
}
void scambia (char *a, char*b)
{
char tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void stampa(char v[], int l)
{ int i;
printf("\n\n");
for (i=0;i<l;i++)
printf(" %c",v[i]);
}
A volte funziona (12, 1234) ed altre no. Penso che il problema sia negli indici dei for ma non riesco a risolvere. Cosa ne pensate?
Grazie a tutti.