1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| #include <stdio.h>
#include <stdlib.h>
#include"poly.h"
typedef struct liste2* monome;
typedef struct liste2
{
int deg;
int coef;
monome suivant;
monome precedent;
}liste2;
monome inserer(monome l,int d,int c);
monome monome_vide();
void afficher_croi(monome l);
void afficher_d(monome l);
int main()
{monome l=monome_vide();
int d,c,k;
do{
printf("donner le deg et le coef:");
scanf("%d%d",&d,&c);
l=inserer(l,d,c);
printf("1 pour ajouter un autre\n");
scanf("%d",&k);}
while(k!=0);
afficher_croi(l);
afficher_d(l);
system("PAUSE");
return 0;
}
monome monome_vide()
{monome l;
l->suivant=NULL;
l->precedent=NULL;
return l;
}
monome inserer(monome l,int d,int c)
{monome pc,pp,px;
px=(monome)malloc(sizeof(monome));
if(px==NULL) {printf("pas assez de memoire"); exit(0);}
px->deg=d;
px->coef=c;
px->suivant=NULL;
px->precedent=NULL;
pc=l;
pp=NULL;
while(pc && pc->deg<d)
{pp=pc;
pc=pc->suivant;
}
px->suivant=pc;
px->precedent=pc;
if(pc)
pc->precedent=px;
if(pp)
pp->suivant=px;
if(!pp)
l=px;
return l;
}
void afficher_croi(monome l)
{monome p=l;
while(p)
{printf("%dX^%d+",p->deg,p->coef);
p=p->suivant;
}
}
void afficher_d(monome l)
{monome p=l;
while(p)
{p=p->suivant;}
while(p)
{printf("%dX^%d+",p->deg,p->coef);p=p->precedent;}
} |
Partager