bonjour,
voila mes codes, le problème c'est que mon programme s’arrête avant la fin et je ne vois pas du tout pourquoi, je suis sur que c'est une erreur bénigne mais je n'arrive pas a la trouver.
Si des yeux plus expert pouvais me dire pourquoi ?
et mes fonctions :Code:#include <stdio.h> #include <stdlib.h> #include "calcul.h" #include <math.h> int main() { printf("\t\t Resolution d'un trinome de second degres\n\n\n"); int valeur[3]={0}; double delta = 0.0, result = 0.0, result1 =0.0; printf ("Veuillez svp donner le valeur de a, b, c tel que a.x(carre) + b.x + c = 0\n"); printf ("\nValeur de a : "); scanf ("%d", &valeur[0]); printf ("\nValeur de b : "); scanf ("%d", &valeur[1]); printf ("\nValeur de c : "); scanf ("%d", &valeur[2]); affiche (&valeur); delta = calculDelta (&valeur); printf ("\nLe discriminent DELTA vaut : %lf", delta); if (delta < 0) printf ("\nLe discriminant est négatif, il n'y a pas de solution possible pour x"); else if (delta = 0) { result = delta0 (&valeur); printf ("\nLa seule solution possible pour x est %lf",delta0); } else if (delta > 0) { result = deltaX1 (&valeur, delta); result1 = deltaX2 (&valeur, delta); printf ("\nDeux solutions possibles\nx1 = %lf \nx2 = %lf", result, result1); } return 0; }
voila ou s'arrete mon prog......Code:void affiche (int tab[]) { printf ("%d x(carre) + (%d x) + (%d) = 0",tab[0],tab[1],tab[2]); } int calculDelta (int tab[]) { int a = tab[0], b = tab[1], c = tab[2]; double delta = 0,bcarre = b*b; delta = (bcarre)+ (-4*a*c); return delta; } double delta0 (int tab[]) { double x = 0; x = (-tab[1])/(2*tab[0]); return x; } double deltaX1 (int tab[], double discri) { double x1 = 0; x1 = (-tab[1] + sqrt (discri)/(2*tab[0])); return x1; } double deltaX2 (int tab[], double discri) { double x2 = 0; x2 = (-tab[1] + (-sqrt (discri))/(2*tab[0])); return x2; }
Merci pour votre aide
-----