Structure Polynome( probleme d'affichage) en C - C - Programmation
Marsh Posté le 26-10-2013 à 15:50:34
Bonjour !
En lisant rapidement votre code, plusieurs erreurs dans poly_pt.c:
* Ligne 11 : vous devriez allouer n+1 éléments, non ? Car vous allez écrire trop loin dans la saisie ...
* Ligne 65 : & au lieu de &&. Par ailleurs, la deuxième moitié du test est inutile, au vu des bornes du for.
Quand vous allouez une structure de type polynome, faites simplement un "malloc(sizeof(polynome)) au lieu de malloc(degre*sizeof(polynome)), cela ne gêne pas pour la suite si le degré est supérieur ou égal à 1, mais vous allouez de la mémoire inutilement.
Dans le main, vous ne désallouez rien, ce n'est pas gênant car vous quittez le programme juste après, certes, mais autant faire les choses bien
Bonne continuation !
Marsh Posté le 27-10-2013 à 06:29:56
Farian a écrit : Bonjour ! |
Effectivement,c'etait là où se trouver mon erreur (sur la taille de mon allocation, (n+1) au lieu de n), du coup ,j'ai pu faire Ma fonction multiplication.
J'ai aussi pris en compte vos modifs, j'ai allouer seulement les octets d'un seul polynome (les octets correspondant aux type polynomes) . Par contre, si j'avais desallouer U, j'allais perdre les données de U non ?!
Marsh Posté le 27-10-2013 à 09:01:09
Oui, vous allez les perdre, mais cela aurait été une bonne chose de le faire dans le main, après l'avoir affiché, avant de quitter le programme, pour avoir du code propre (même si le système d'exploitation libère tout à la fin de l'exécutable), autant prendre de bonnes habitudes, même en codant un petit programme de test.
Bonne continuation !
Marsh Posté le 26-10-2013 à 15:30:35
Bonjour,
Je suis debutant et actuellement , je voudrais faire un e fonction qui calcule une somme de 2 polynomes (et ensuite le produit de 2 polynomes!!). J'ai crée une structure du type "polynome", j'ai crée ma fonction poly_pt.h,poly_pt.c ,mon Makefile et ma fonction "main_pt.c", dont les voici:
pour le "Makefile"
Pour la fonction "poly_pt.h" :
Pour la fonction "poly_pt.c"
Et pour la fonction "main_pt.c"
Quand je compile (avec mon executant [B]./exe[/B] sur le terminal , il m'affiche pas d'erreur et ça s'execte!
Quand je prend , un polynome de taille 2, 4,6 (en gros de degre paire il me semble, MAIS je ne suis pas sur ),il m'affiche le bon resultat que je recherchiais (à savoir sommer les 2 polynomes!!
Mais là ou il y'a probleme, c'est que quand je prend le polynime de degre 3,5,7( donc de degre impair ,il me semble) que ça se complique vu que la derniere valeur s'affiche tjrs 0. Par exemple, un polynome de degre 3 qui a comme coef(1,3,3,1) ( ranger suivant les puissances decroissantes du polynome) , Le terminal ,ne me donne pas le bon resultat (il devait me donner (2,6,6,2)), mais il me donne donne ça!:
Pire encore , quand je prend le polynome (3,2,1,0) (toujours rangé suivant les puissances decroissantes!), il m'affiche:
Et je ne vois pas où est l'erreur, ni comment faire, je suis vraiment scotché!!