bonsoir

voila un petit problème :

Dans mon petit programme, on demande d'entrer un mot terminer par un point '.'
et on stocke les caractères dans un tableau dynamique "A" à une seule dimension, on récupère le nombre (n) de caractères dans ce mot, on crée ensuite un tableau dynamique "tab" à deux dimensions où on a :
(nbr de colonnes = n ; nbr de ligne = n!), chaque ligne du tableau "tab" contiendra une anagramme différente de votre mot.

jusqu'à la création du tableau "tab" il n'y a pas de problème, à vraie dire je me bloque dans le remplissage du tableau tab, voilà ce que j'ai fait :

les deux fonction principale ;

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
int verify(char**tab , int k , int j , char c) //vérification du double
{
    int i, t=1;
    for(i=0 ; i<=j-1 ; i++)
    {
        if(tab[k][i]==c)
        t=0;
    }
 
    if(t==1)
    return 1;        //c'est que "t" n'a pas changé de valeur
 
    return 0;       //le sinon
}
 
 
void anagram(char*A , char**tab , int n)   //remplissage de tab
{
 
    int i, j, k;
 
    for(j=0 ; j<=n-1 ; j++)         //j est l'indice de colones de "tab"
    {
        for(i=0 ; i<=n-1 ; i++)       // i est l'indince de "A"
        {
            for(k=i*fact(n-1-j) ; k<=(i+1)*(fact(n-1-j)) ; k++)      //k est l'indice de lignes de "tab"
            {
                if(verify(tab,k,j,A[i])==1)
                tab[k][j]=A[i];
 
                else          //sinon on 
                {
                    i++;
                    k--;
                }
            }
        }
    }
 
}
si vous avez une idée...............merci!!