Bonjour,
Je suis totalement bloquer sur un programme de manipulation de polynome (à coef dans Q)
exemple : -4/5 + 3x^9 +7/2x^15-x^18
Plutôt que bloquer on peut plutôt dire que je n'arrive pas à démarrer, vu que je bloque sur la saisie du polynome.
Le problème vient de la méthode qui est imposé :
le polynome doit être un tableau de monome de la forme
typedef mon {
int degre, num, den;
}Monome;
typedef struct poly {
Monome monome[MAX];
int nbmo;
} Polynome;
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include "poly.h"
- int main()
- {
- Polynome polynome;
- char chaine[100];
- char* temp;
- int i, j, cas;
- printf("Saisissez votre pôlynome :\n" );
- scanf("%s",chaine);
- *temp = chaine[0];
- for (j=0; *temp!='\0'; j++)
- {
- cas=0;
- for (i=1; *temp!='+' && *temp!='\0'; i++)
- {
- if (*temp=='x')
- {
- *temp=chaine[i];
- continue;
- }
- if (*temp=='/')
- {
- cas=cas+1;
- *temp=chaine[i];
- continue;
- }
- if (*temp=='^')
- {
- cas=cas+2;
- *temp=chaine[i];
- continue;
- }
- if (cas==0)
- polynome.monome[j].num =atoi(*temp);
- else if (cas==1)
- polynome.monome[j].den =atoi(*temp);
- else if (cas==2)
- polynome.monome[j].degre =atoi(*temp);
- *temp=chaine[i];
- }
- }
- }
|
Mais il reste plusieurs problèmes :
Après avoir tapé un polynome j'ai une erreur comme quoi la mémoire ne peut être en état "read"
Cette erreur disparait en enlevant atoi mais je me retrouve avec un char, pas très pratique pour calculer dérivé, primitive....par la suite.
Ensuite si l'on tape 44x^5 par exemple le deuxième 4 va écraser le premier dans le num, je ne vois pas comment corriger sa.
Idem si l'on rentre 5x^4-7x^5, il va y avoir un problème avec le "-".
Merci d'avance pour votre aide.