Bonjour tout le monde,
Je souhaite réaliser les combinaisons de n listes de tailles différentes (le nombre de caractères par combinaison est égal à n aussi), par exemple si pour n=3 j'ai les listes suivantes:
l1={a, b, c} ; l2={c, d} et l3={f, j}
Je voudrais pouvoir afficher:
acf
acj
adf
adj
bcf
bcj
bdf
bdj
ccf
ccj
cdf
cdj
Vous me direz j'imbrique 3 for et le tour est joué! Cependant je veux que ma fonction puisse faire cela pour n ensembles donnés en pamaramètre: il faut donc que je fasse un appel récursif, mais je n'arrive pas à trouver comment faire...
Voici un exemple réalisé en imbriquant des boucles for (itératif) pour n=3:
PS: liste[] est un tableau de n listes (il a donc une taille n)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for(i=0; i<liste[0]->size; i++) for(j=0; j<liste[1]->size; j++) for(k=0; k<liste[2]->size; k++) { printf("%c", listIth(liste[0], i+1) ); printf("%c", listIth(liste[1], j+1) ); printf("%c", listIth(liste[2], k+1) ); }
char lislth(List list, int i) est une fonction qui me retourne la ième valeur de la liste
Merci d'avance![]()
Partager