Bonjour,
J'essaie de faire une fonction qui fait l'analyse syntaxique d'un polynome entré par un utilisateur qui doit obligatoirement être de la forme (+ou-)ax^k+...
Exemple +2x^2-4x^3.
Mon programme récupère l'exposant et le coeeficient et le met dans un autre tableau ou les indices correspondent aux exposants.
Sauf que mon programme plante et je ne vois pas du tout ou est l'érreur.
Le voila :
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 #include <stdio.h> #include <stdlib.h> #include<string.h> #define TRUE 1 #define FALSE 0 int verifier_poly(char *tab); int tab_coef[40]={0}; int main() { printf("Entrer votre polynome\n"); char tab[40]; scanf("%s",tab); printf("Taille chaine %d", strlen(tab)); if(verifier_poly(tab)==TRUE) { printf("BOn\n"); } else { printf("Faux\n"); } return 0; } int verifier_poly(char *tab) { if( tab[0]=='+' || tab[0]=='-' && isdigit( atoi(tab[1]) ) && tab[2]=='x' && tab[3]=='^' && isdigit( atoi(tab[4]) ) && atoi(tab[4])>=0 ) { if(tab[0]=='-') { tab_coef[atoi(tab[4])]=tab_coef[atoi(tab[4])] - atoi(tab[1]); } else { tab_coef[atoi(tab[4])]=tab_coef[atoi(tab[4])]+ atoi(tab[1]); } verifier_poly(tab+5); } else if(tab[0]=='\0') { return TRUE; } else { return FALSE; } }
Merci d'avance
Partager