bonjour,
je veux creer une matrice d'entiers avec les positions de chaque alphabet dans un mot donné.
En effet, ma matrice prend en ligne la taille de l'alphabet du mot et en colonne la taille du mot+1
et on crée un tableau position qui prend en argument le mot et chaque alphabet et renvoi ses positions dans ce mot.
Pour remplir la matrice il faut à chaque fois comparer la position de la lettre avec l'indice de la ligne et si c'est supérieur on le met a la case qui correspond.
Voici mon code, ma fonction ne me rempli pas la matrice bien comme il faut et j'ai essayé ça à la main et ça marche mais je vois pas l'erreur.
Merci pour votre aide
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 Matrice* CreerMatrice(char* mot,char* alphabet) { int i; int j=0; int k=0; int* pos=(int*)malloc(sizeof(int)); Matrice* M=AllouerMatrice(strlen(mot)+1,1); for(i=0;i<strlen(alphabet)+1;i++) { pos=position(mot,alphabet[i]); while(j<strlen(mot)+1) { if(pos[k]>j) { M->tab[i][j]=pos[k]; j++; } else { k++; } } for(i=0;i<strlen(alphabet)+1;i++) for(i=0;i<strlen(mot)+1;i++) if(M->tab[i][j]==0) M->tab[i][j]=strlen(mot)+1; return M; }
Partager