Appel d'un fichier d'entete

Résolu
fifouta Messages postés 14 Statut Membre -  
fifouta Messages postés 14 Statut Membre -
Bonjour,

je programme en c sous linux , il s'agit de résoudre une équation du second degrés.
en premier lieu on insite l'utilisateur à saisir les coéfficients, là le programme marche bien
#include<stdio.h>
#include<math.h>

main()   {

int  a,b,c ;float delta, x1 ,x2 ; 

printf ("la valeur de A ? = ") ;    scanf ("%d" , &a); 
printf ("la valeur de B ? = ") ;    scanf ("%d" , &b);
printf ("la valeur de C ? = ") ;    scanf ("%d" , &c);

delta = pow(b,2)-4*a*c ;

if  (delta<0) printf (" pas de solution de l'équation dans l'ensemble des réels\n");

else  

     if (delta==0)

       { x1= -b/2*a ;
         printf (" solution unique égale à : %f\n", x1) ; }

     else 
       {  x1= (-b-pow(delta,1/2))/2*a;

          x2= (-b+pow(delta,1/2))/2*a;
          printf ("solution double égale à : %f\n   %f\n ", x1 , x2) ; }

}


ensuite , on utilise un fichier d'entete constante.h dans lequel on déclare les constante
son contenu est le suivant :

#define a 9
#define b 2
#define c 4


hors avec cette soluition ça ne marche pas

une idée sur la source du problème ?, merci de partager
A voir également:

1 réponse

fifouta Messages postés 14 Statut Membre
 
le problème est résolu pour ceux que ça interesse :

il ne faut pas mélanger à la fois les #define et les noms des variables, sinon ces derniers vont être remplacés par les valeurs des macros, avant la compilation. Ainsi « int a,b,c » va devenir « int 9,2,4 », ce qui n'a aucun sens, syntaxiquement.

donc fallait supprimer la ligne :

int a,b,c

un grand merci à Obsidian.
0