Problème langage C (fonction polynome)
Fermé
321iom
-
13 oct. 2010 à 12:42
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 - 14 oct. 2010 à 00:18
ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 - 14 oct. 2010 à 00:18
A voir également:
- Problème langage C (fonction polynome)
- Fonction si et - Guide
- Langage ascii - Guide
- Langage binaire - Guide
- Fonction moyenne excel - Guide
- Pascal langage - Télécharger - Édition & Programmation
2 réponses
321iom
Messages postés
1
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
13 octobre 2010
13 oct. 2010 à 18:22
13 oct. 2010 à 18:22
J'ai fais différents tests et tout marche sauve quand je met un 0 en degré, je comprend vraiment pas d'où ça vient =/
ydurce
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Statut
Membre
Dernière intervention
12 décembre 2010
18
14 oct. 2010 à 00:18
14 oct. 2010 à 00:18
bonjour,
l'algo de ajoutermonome n'est pas terrible.
la ligne 52 (nbmonome--) est une erreur, tu n'otes pas de monome, tu modifies son coef.
De même, dans ce do..while, le "if((*p).tab[i].degre>m.degre&&(*p).tab[i].degre>0)" a une influence qui ne peut pas être déterminé puisque le tab[i] n'a jamais été initialisé (à partir de nbmonome>0).
de plus tab[i+1]=.. explose la mémoire si le nombre de monome rentré est le maximum puisque le premier tab[i+1]=.. de la boucle (avant le i--) équivaut à un tab[nbmonome+1]=m et, si nbmonome=nMaxMonome, on est en débordement (+2) du tableau de longueur nMaxMonome.
ensuite,dans la suppression des degrés avec coefs 0, à la ligne 72 "(*p).tab[i]=(*p).tab[i+1];" , il faut "(*p).tab[j]=(*p).tab[j+1];"
A mon avis, il faut revoir complétement l'algo de cette fonction. peut-être balayer de 0 à nbmonome plutôt que l'inverse?
l'algo de ajoutermonome n'est pas terrible.
la ligne 52 (nbmonome--) est une erreur, tu n'otes pas de monome, tu modifies son coef.
De même, dans ce do..while, le "if((*p).tab[i].degre>m.degre&&(*p).tab[i].degre>0)" a une influence qui ne peut pas être déterminé puisque le tab[i] n'a jamais été initialisé (à partir de nbmonome>0).
de plus tab[i+1]=.. explose la mémoire si le nombre de monome rentré est le maximum puisque le premier tab[i+1]=.. de la boucle (avant le i--) équivaut à un tab[nbmonome+1]=m et, si nbmonome=nMaxMonome, on est en débordement (+2) du tableau de longueur nMaxMonome.
ensuite,dans la suppression des degrés avec coefs 0, à la ligne 72 "(*p).tab[i]=(*p).tab[i+1];" , il faut "(*p).tab[j]=(*p).tab[j+1];"
A mon avis, il faut revoir complétement l'algo de cette fonction. peut-être balayer de 0 à nbmonome plutôt que l'inverse?