Ce code permet à partir d'une séquence de chiffres ou de lettres de donner tt les combinaisons possibles qu'on peut faire avec
Ex: séquence -> 1,2,3
les combin. possibles: 123 / 132 / 213 / 231/ 312/ 321
on met la séquence à combiner dans un tableau, puis en appel un fonction récursive.
Cette fonction part du principe qu'on fixe le premier élément puis on le combine avec le reste, ensuite on fixe le 2eme ...
Ex: soit la séquence {1,2,3,4}
dabord on fixe le 1 ->on fixe le 2 ->on combine le 3 et le4
ensuite ->on fixe le 3 ->on combine le 2 et le 4
->on fixe le 4 ->on combine le 2 et le 3
ensuite on fixe le 2 -> ..
..
etc
Place au code maintenant:
Source / Exemple :
#include <stdio.h>
void print_tab(unsigned char tab[],int size_tab)
{
int i;
for(i=0;i<size_tab;i++)
printf("%d",tab[i]);
printf("\n"); //retour à la ligne
}
void permute(unsigned char tab[],unsigned char i,unsigned char j)
{
unsigned char c;
c=tab[i];
tab[i]=tab[j];
tab[j]=c;
}
void combin(unsigned char tab[],int i, int size_tab)
{
unsigned char j;
if (i==size_tab)
{
print_tab(tab,size_tab);
}
else
for(j=i;j<size_tab;j++)
{
permute(tab,i,j);
combin(tab,i+1,size_tab);
permute(tab,i,j);
}
}
main()
{
unsigned char tab[]={1,2,3,4};
combin(tab,0,4);
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.