Pb decimaux double C
daxter
-
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
En ayant partiellement fait ce petit programme, je voudrais passer aux décimaux : remplacé int par double mais il y a 50 erreurs et je ne vois pas l'erreur alors qu'avec int, il n'y a pas de problème !
Mon code
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double main()
{
printf("Resoudre y = ax*x+bx+c= 0 ,pour a, b, c differents de 0\n\n");
double variableA = 0;
printf("Saisissez votre nombre a : ");
scanf("%d", &variableA);
double variableB = 0;
printf("Saisissez votre nombre b : ");
scanf("%d", &variableB); // Recupère variableB
double variableC = 0;
printf("Saisissez votre nombre c : ");
scanf("%d", &variableC); // Recupère variableC
double carreDeB = 0;
carreDeB = pow(variableB, 2);
double discriminant = 0;
discriminant = carreDeB - 4 * variableA * variableC;
if (discriminant == 0)
{
double racineDouble = 0;
racineDouble = (- variableB) / (2 * variableA);
double (racineDouble < 0)
{
double racineDoubleinf = 0;
racineDoubleinf = - racineDouble; // ptetre pas besoin ptetre direct meme dans print f
printf("\nLa seule solution est :\nx= %d et la factorisation du polynome est y = %d(x + %d)^2 \n\n\n\n\n\n", racineDouble, variableA, racineDoubleinf);
}
else
{
printf("\nLa seule solution est :\nx= %d et la factorisation du polynome est y = %d(x - %d)^2 \n\n\n\n\n\n", racineDouble, variableA, racineDouble);
}
}
else if (discriminant < 0)
{
printf("\nIl n'y a aucunes solutions !\n\n\n\n\n\n");
}
else if (discriminant > 0)
{
double racineDiscriminant = 0;
racineDiscriminant = sqrt(discriminant);
double premiereRacine = 0;
premiereRacine = (- variableB - racineDiscriminant) / (2 * variableA);
double deuxiemeRacine = 0;
deuxiemeRacine = (- variableB + racineDiscriminant) / (2 * variableA);
double (premiereRacine <= 0 && deuxiemeRacine <= 0)
{
double premiereRacineinf = 0;
premiereRacineinf = - premiereRacine;
double deuxiemeRacineinf = 0;
deuxiemeRacineinf = - deuxiemeRacine;
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x + %d)(x + %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacineinf, deuxiemeRacineinf);
}
else if (premiereRacine <= 0 && deuxiemeRacine >= 0)
{
double premiereRacineinf = 0;
premiereRacineinf = - premiereRacine;
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x + %d)(x - %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacineinf, deuxiemeRacine);
}
else if (premiereRacine >= 0 && deuxiemeRacine <= 0)
{
double deuxiemeRacineinf = 0;
deuxiemeRacineinf = - deuxiemeRacine;
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x - %d)(x + %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacine, deuxiemeRacineinf);
}
else if (premiereRacine >= 0 && deuxiemeRacine >= 0)
{
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x - %d)(x - %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacine, deuxiemeRacine);
}
else
{
printf("Vous avez choisit c = 0, erreur !"); // CONStRUCtiOn
}
}
else
{
printf("\nUne ou plusieures de vos trois valeurs ne sont pas des nombres differents de 0\n\n\n\n\n\n");
}
return 0;
}
En ayant partiellement fait ce petit programme, je voudrais passer aux décimaux : remplacé int par double mais il y a 50 erreurs et je ne vois pas l'erreur alors qu'avec int, il n'y a pas de problème !
Mon code
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double main()
{
printf("Resoudre y = ax*x+bx+c= 0 ,pour a, b, c differents de 0\n\n");
double variableA = 0;
printf("Saisissez votre nombre a : ");
scanf("%d", &variableA);
double variableB = 0;
printf("Saisissez votre nombre b : ");
scanf("%d", &variableB); // Recupère variableB
double variableC = 0;
printf("Saisissez votre nombre c : ");
scanf("%d", &variableC); // Recupère variableC
double carreDeB = 0;
carreDeB = pow(variableB, 2);
double discriminant = 0;
discriminant = carreDeB - 4 * variableA * variableC;
if (discriminant == 0)
{
double racineDouble = 0;
racineDouble = (- variableB) / (2 * variableA);
double (racineDouble < 0)
{
double racineDoubleinf = 0;
racineDoubleinf = - racineDouble; // ptetre pas besoin ptetre direct meme dans print f
printf("\nLa seule solution est :\nx= %d et la factorisation du polynome est y = %d(x + %d)^2 \n\n\n\n\n\n", racineDouble, variableA, racineDoubleinf);
}
else
{
printf("\nLa seule solution est :\nx= %d et la factorisation du polynome est y = %d(x - %d)^2 \n\n\n\n\n\n", racineDouble, variableA, racineDouble);
}
}
else if (discriminant < 0)
{
printf("\nIl n'y a aucunes solutions !\n\n\n\n\n\n");
}
else if (discriminant > 0)
{
double racineDiscriminant = 0;
racineDiscriminant = sqrt(discriminant);
double premiereRacine = 0;
premiereRacine = (- variableB - racineDiscriminant) / (2 * variableA);
double deuxiemeRacine = 0;
deuxiemeRacine = (- variableB + racineDiscriminant) / (2 * variableA);
double (premiereRacine <= 0 && deuxiemeRacine <= 0)
{
double premiereRacineinf = 0;
premiereRacineinf = - premiereRacine;
double deuxiemeRacineinf = 0;
deuxiemeRacineinf = - deuxiemeRacine;
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x + %d)(x + %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacineinf, deuxiemeRacineinf);
}
else if (premiereRacine <= 0 && deuxiemeRacine >= 0)
{
double premiereRacineinf = 0;
premiereRacineinf = - premiereRacine;
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x + %d)(x - %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacineinf, deuxiemeRacine);
}
else if (premiereRacine >= 0 && deuxiemeRacine <= 0)
{
double deuxiemeRacineinf = 0;
deuxiemeRacineinf = - deuxiemeRacine;
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x - %d)(x + %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacine, deuxiemeRacineinf);
}
else if (premiereRacine >= 0 && deuxiemeRacine >= 0)
{
double facteurPoly = 0;
facteurPoly = 2 * variableA;
printf("\nLes solutions sont :\nx= %d ou x= %d et la factorisation du polynome est y = %d(x - %d)(x - %d)\n\n\n\n\n\n", premiereRacine, deuxiemeRacine, facteurPoly, premiereRacine, deuxiemeRacine);
}
else
{
printf("Vous avez choisit c = 0, erreur !"); // CONStRUCtiOn
}
}
else
{
printf("\nUne ou plusieures de vos trois valeurs ne sont pas des nombres differents de 0\n\n\n\n\n\n");
}
return 0;
}
A voir également:
- Pb decimaux double C
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
- Double boot - Guide
2 réponses
Bonsoir
Je pense que tu devrais chercher vers les %d des scanf et printf :
je te mets un lien trouvé rapidement sur google :
http://picolibre.int-evry.fr/projects/svn/coursc/Tex4Ht/Indexse22.html
au hasard vers la section "Tab. 4.1: Conversions usuelles de printf et scanf"
Bonne continuation
Je pense que tu devrais chercher vers les %d des scanf et printf :
je te mets un lien trouvé rapidement sur google :
http://picolibre.int-evry.fr/projects/svn/coursc/Tex4Ht/Indexse22.html
au hasard vers la section "Tab. 4.1: Conversions usuelles de printf et scanf"
Bonne continuation
Heu, c'est surtout les '%d' qu'il faut transformer ! Et ça doit aller ! Si ce n'était pas le cas, il y a longtemps que cela se saurait !
Que dit précisément le compilateur ? Et quelle est la ligne correspondante ? Inutile de donner les 100 lignes de code puisque c'est toujours la même erreur.
Bonne continuation.
Que dit précisément le compilateur ? Et quelle est la ligne correspondante ? Inutile de donner les 100 lignes de code puisque c'est toujours la même erreur.
Bonne continuation.