Aide sur mon code
Fermé
segawahabwade
Messages postés
2
Date d'inscription
dimanche 22 février 2015
Statut
Membre
Dernière intervention
23 février 2015
-
23 févr. 2015 à 20:51
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 févr. 2015 à 23:53
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 févr. 2015 à 23:53
A voir également:
- Aide sur mon code
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
2 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 23/02/2015 à 21:11
Modifié par gravgun le 23/02/2015 à 21:11
BONJOUR
La politesse, on l'oublie trop souvent...
Tu as posté ton code, bonne idée! Mais utilise les balises < code> que le forum met à disposition la prochaine fois.
Après niveau calculs je sais pas, j'ai pas encore vu les complexes pour la résolution de polynômes, bien que je saisisse le principe.
from human import idiocy
del idiocy
La politesse, on l'oublie trop souvent...
Tu as posté ton code, bonne idée! Mais utilise les balises < code> que le forum met à disposition la prochaine fois.
- Tu n'as pas besoin de l'en-tête
errno.h
ici, tu peux l'enlever. - Il manque une accolade fermante à la fin de ton programme.
- Le
return 0;
n'est pas toujours exécuté, or il doit être à la toute fin de tonmain
, déplaces-le. Idem pour tonsystem("PAUSE");
, que je remplacerais volontiers par ungetchar();
. - Tu utilises
sqrt
mais n'as pas#include <math.h>
. -
%lf
c'est pour des typesdouble
et nonfloat
, change le type de tes variables; en plus tes calculs de nombres seront plus précis. - Tu as inversé le L et F au dernier paramètre de format de
scanf
! - Tu as oublié de faire un gros
else
pour tonif (a == 0)
, qui engloberait le reste des cas possibles. - Il manque un retour à la ligne dans ton dernier
printf
.
Après niveau calculs je sais pas, j'ai pas encore vu les complexes pour la résolution de polynômes, bien que je saisisse le principe.
from human import idiocy
del idiocy
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 févr. 2015 à 23:03
23 févr. 2015 à 23:03
Rah que ça énervant les double posts...
Je remets ici ce que j'avais mis dans l'autre post :
scanf("%lf %lf %fl", &a, &b, &c);
a, b et c sont des float. Pas des doubles.
if(a == 0 && b == 0 && c == 0 ){
La comparaison de flottants n'a pas de sens. Il vaut mieux vérifier que a, b et c sont suffisamment proches de 0.
X1 = -c/b;
Badaboum si b vaut 0...
delta = (b*b) - (4*a*c);
Vaut mieux mettre un else juste au dessus.
printf(" l'equation admet 2 racines distints réels qui sont %lf et %lf \n", X1 , X2);}
Jamais de %lf dans un printf().
X1 = (-b -i*sqrt(-delta))/(2*a) ;
Le compilateur risque de râler.
Note : la prochaine fois, merci d'utiliser la balise "code".
Exemple :
Cdlt,
Je remets ici ce que j'avais mis dans l'autre post :
scanf("%lf %lf %fl", &a, &b, &c);
a, b et c sont des float. Pas des doubles.
if(a == 0 && b == 0 && c == 0 ){
La comparaison de flottants n'a pas de sens. Il vaut mieux vérifier que a, b et c sont suffisamment proches de 0.
X1 = -c/b;
Badaboum si b vaut 0...
delta = (b*b) - (4*a*c);
Vaut mieux mettre un else juste au dessus.
printf(" l'equation admet 2 racines distints réels qui sont %lf et %lf \n", X1 , X2);}
Jamais de %lf dans un printf().
X1 = (-b -i*sqrt(-delta))/(2*a) ;
Le compilateur risque de râler.
Note : la prochaine fois, merci d'utiliser la balise "code".
Exemple :
ici tu mets ton code
Cdlt,
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
23 févr. 2015 à 23:24
23 févr. 2015 à 23:24
La comparaison de flottants n'a pas de sens. Il vaut mieux vérifier que a, b et c sont suffisamment proches de 0.Certes, mais dans ce cas précis,
a
bet
cne subissent pas de calculs, donc un 0 tapé par l'utilisateur sera un vrai 0 en
float.
Jamais de %lf dans un printf().Raaaah, si tout le monde compilait avec
-Wall -Werror -pedantic...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 févr. 2015 à 23:53
23 févr. 2015 à 23:53
donc un 0 tapé par l'utilisateur sera un vrai 0 en float
Le C n'impose pas la représentation des flottants. Du coup, on peut avoir des surprises parfois.
Par exemple, si l'utilisateur rentre 0.1, tu ne pourras pas faire : if(a==0.1), ça risque de ne pas fonctionner. Pour le 0, ça marchera effectivement la plupart du temps des plateformes, mais rien ne te garantie que la portabilité du fonctionnement.
Le C n'impose pas la représentation des flottants. Du coup, on peut avoir des surprises parfois.
Par exemple, si l'utilisateur rentre 0.1, tu ne pourras pas faire : if(a==0.1), ça risque de ne pas fonctionner. Pour le 0, ça marchera effectivement la plupart du temps des plateformes, mais rien ne te garantie que la portabilité du fonctionnement.