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=0i<len i++ )
   {  
          for ( 
j=0j<len j++)
          { 
                  for ( 
k=j+1k<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 *achar*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.