Je dois faire un programme en C sur le calcul de polynomes.
On considere des polynomes de la forme : P(x) = AnXexp(e1) + A(n-1)Xexp(e2) + ? + A1Xexp(en) avec e1 > e2 > ... > en > 0
|
Bon j'ai commence a faire le programme, c'est a dire permettre d'afficher et d'entrer un polynome dans une liste chainee mais j'ai des erreurs :
j'ai quatre fichiers :
Code :
- polynome.h
- struct Scoef {
- double coef;
- struct Scoef *suivant;
- }
- extern saisi(struct Scoef);
- extern void affichage(struct Scoef);
|
Code :
- main.h
- struct Scoef {
- double coef;
- struct Scoef *suivant;
- }
|
Code :
- polynome.c
- #include <stdio.h>
- #include <malloc.h>
- #include <stdlib.h>
- #include <string.h>
- #include "polynome.h"
- //---------------------------------------------------------------------------
- // Demande les coefs a l'utilisateur
- void saisi(struct Scoef **p)
- {
- char s[20]; //Lifgne pour rentrer le coef
- double a;
- struct Scoef *P;
- char *res;
- puts("Rentrez les coefs :" );
- P = (struct Scoef*)malloc(sizeof(struct Scoef));
- P->coef = 0; // init
- P->suivant = NULL;
- *p = P; // on sauve le premier
- // double strtod( const char *nptr, char **endptr );
- while ( (a = strtod( gets(s),&res )) || (!strcmp(res,"" )) )
- {
- P->coef = a;
- P->suivant = (struct Scoef*)malloc(sizeof(struct Scoef));
- P=P->suivant; // on se décale
- P->coef = 0; //propreté
- P->suivant = NULL;
- }
- }
- //---------------------------------------------------------------------------
- // Affiche le polynome
- void affichage(struct Scoef *p)
- {
- int i = 0;
- while (p->suivant)
- {
- if (p->coef != 0) printf("%.1lf X^%d ",p->coef,i);
- if ((p->suivant->coef != 0)&&(p->coef!=0)) printf("+ " );
- p = p->suivant;
- i++;
- }
- puts("" );
- }
|
Code :
- main.c
- #include <stdio.h>
- #include <malloc.h>
- #include <stdlib.h>
- #include <string.h>
- #include "polynome.h"
- void saisi(struct Scoef);
- void affichage(struct Scoef);
- struct Scoef *P;
- void main()
- {
- saisi(P);
- }
|
Et voici mes erreurs :
C:\Documents and Settings\Administrateur\Bureau\mini_project\main.c(10) : error C2371: 'saisi' : redefinition; different basic types
c:\documents and settings\administrateur\bureau\mini_project\polynome.h(8) : see declaration of 'saisi'
C:\Documents and Settings\Administrateur\Bureau\mini_project\main.c(18) : error C2115: 'function' : incompatible types
C:\Documents and Settings\Administrateur\Bureau\mini_project\main.c(18) : warning C4024: 'saisi' : different types for formal and actual parameter 1
polynome.c
C:\Documents and Settings\Administrateur\Bureau\mini_project\polynome.c(13) : error C2628: 'Scoef' followed by 'void' is illegal (did you forget a ';'?)
C:\Documents and Settings\Administrateur\Bureau\mini_project\polynome.c(14) : error C2371: 'saisi' : redefinition; different basic types
c:\documents and settings\administrateur\bureau\mini_project\polynome.h(8) : see declaration of 'saisi'
C:\Documents and Settings\Administrateur\Bureau\mini_project\polynome.c(43) : warning C4028: formal parameter 1 different from declaration
Error executing cl.exe.
mini_project.exe - 4 error(s), 2 warning(s)
Aidez moi ca fait une heure et demi que je n'avance plus.