/* Solution proposee par Ning Hu, legerement modifiee */
//structs
//-----------------------------
//un structure pour la polynome
//-----------------------------
struct poly
{
int degree;
float* coefficient;
};
typedef struct poly poly;
//---------
//un node
//---------
struct node
{
poly* poly;
struct node *next;
};
typedef struct node node;
//functions
//----------
//prototypes
//----------
poly* cree(void); //cree un polynome
void montre(poly*); //mettre un polynome a l'ecran
void montre_plusiers(node*); //mettre toute une liste de polynomes a l'ecran
poly* choisir_poly(node*); //choisir un polynome de la liste
node* ajouter_a_list(node*,poly*); //ajouter un polynome a la liste
poly* calculer(poly*); //calculer le degree du polynome
poly* ajouter(poly*,poly*); //ajouter deux polynomes ensemble
poly* multiplier(poly*,poly*); //multiplier deux polynome ensemble
poly* multiplier_const(poly*,double); //multiplier un polynome par un nombre reel
double evaluer_a_horner(poly *p,double n);//evaluer un polynome a la puissance n
poly* copy(poly*); //fait un copie d'un polynome
void destroy(poly*); //detruire un polynome