Bonjour,
voila mon exercice :comment définit le type de polynômes avec des listes chaînées des monômes non nuls .
voila mon réponse :
le problème :quand je compile, le programme n'affiche rien ; Merci d’avance .Code:#include<stdio.h> #include<conio.h> #include<stdlib.h> typedef struct { int c ; int puiss; }Mono; typedef struct listM{ Mono* m; struct listM* svt; }listM; typedef struct { listM* coef; int deg; }poly; poly makerandom(int n) { poly p; p.coef=NULL; listM* l; int k; for(int i=0;i<n;i++) { k=rand()%10; if(k!=0) { l=(listM*)malloc(sizeof(listM)); l->m->c=k; l->m->puiss=i; l->svt=p.coef; p.coef=l; }} p.deg=n; return(p); } void printpoly(poly p) { while(p.coef) { printf("+(%d*x^%d)",p.coef->m->c,p.coef->m->puiss); p.coef=p.coef->svt; } } int nbnozero(poly p) { int k=0; listM* l=p.coef; while(l) { if(l->m->c) {k=k+1;} l=l->svt; } return(k); } int evalpoly(poly p,int x) { int s=0; int prod=1; listM* l=p.coef; while(l) { prod=prod*x; s=s+(l->m->c)*prod; l=l->svt; } return(s); } poly addpoly(poly p1,poly p2) { poly p3; listM* A; listM* B; p3.coef=NULL; if(p1.deg>p2.deg) {p3.deg=p1.deg;} p3.coef=(listM*)malloc((p1.deg+1)*sizeof(listM)); for(int i=0;i<p3.deg;i++) { A=p1.coef; B=p2.coef; while(A) { if(A->m->puiss==i) {p3.coef+=A->m->c;} A=A->svt; } if(p1.deg<p2.deg) { p3.deg=p2.deg;} while(B) {if(B->m->puiss==i) {p3.coef+=B->m->c;} B=B->svt; } } return(p3); } main() { poly P1,P2,P3; int S,X; P1=makerandom(5); P2=makerandom(4); printf("*** Polynome 1 *** \n\n"); printpoly(P1); printf("\n\n*** Polynome 2 *** \n\n"); printpoly(P2); S=nbnozero(P1); printf("\n\n*** Le Nombre Des Coef Non Nuls Du Polynome 1 *** \n\n"); printf("%d",S); X=evalpoly(P1,2); printf("\n\n*** L'evaluation Du Polynome 1 *** \n\n"); printf("%d",X); P3=addpoly(P1,P2); printf("\n\n*** Polynome 3 : La Somme Du Polynome 1 et Du Polynome 2 *** \n\n"); printpoly(P3); getch(); }
-----