Problème langage C (fonction polynome)

321iom -  
ydurce Messages postés 78 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis en L2 de mathématique, et j'ai donc j'ai un peu d'informatique tout en restant basique bien sûr =)
Donc j'ai un programme en C a réaliser, voici là ou j'en suis dans mon code :
http://wall.pastebin.org/157340
Tout se passe plutôt bien dans le programme, sauf dans la partie "ajouter un monome", en effet tout marche sauf si je rentre un monôme de degré 0 dans quel cas tout plante =/
Voici l'objectif de cette fonction (ligne 47), il s'agit de parcourir le polynôme pour y ajouter un monôme en partant de la droite du tableau, tout en classant de sorte que p.tab soit un tableau classé par ordre de degrés croissants, et qu'aucun des coeffs ne soit nuls.

Merci beaucoup à ceux qui m'aideront !


A voir également:

2 réponses

321iom Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
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 =/
0
ydurce Messages postés 78 Date d'inscription   Statut Membre Dernière intervention   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?
0