Programme en C. Calcule de racines

Signaler
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008
-
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008
-
bonsoir a tous...

J'ai voulu créer un programme en C qui demande trois nombres (a,b,c) a l'utilisateur tel que
ax² + bx + c = 0 pour ensuite calculer les racines. Mais aparemment j'ai un problème.
Pouvez vous m'aidez SVP. Quelles modifications faire? Comment alléger le code?

Merci d'avance

Voici le code :

#include <stdio.h>
#include <math.h>
main()
{
short a,b,c,rho;
float tmp;
printf("Entrez un nombre a, un nombre b et un nombre c tel que ax² + bx + c = 0");
printf("\n\na = ? , b = ? , c = ? :");
scanf("%hd %hd %hd",&a, &b, &c);
printf("\n %hdx² + %hdx + %hd = 0", a,b,c);
rho=b*b-4*a*c ;
tmp= sqrt(b*b-4*a*c);
if (rho >0)
printf("\n\nLes racines sont : %f et %f", (-b+ temp)/(2*a),(-b - temp)/(2*a));
else if (rho == 0)
printf ("\n\nLa racine est : %.hd ", (-b)/(2*a));
else
printf("\n\nIl n'y a pas de racines");
}
A voir également:

14 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
tmp= sqrt(b*b-4*a*c);
Tu viens de calculer ca dans tho, pourquoi ne pas réutiliser cette variable? Peut être penser a vérifier si rho est négatif avant de calculer sa racine carrée?
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008

Mais le probleme vient quand y a pas de racine.J'ai ce message : sqrt:_DOMAIN error
Aidez moi SVP...

#include <stdio.h>
#include <math.h>
main()
{
short a,b,c,rho;
float temp;
printf("Entrez un nombre a, un nombre b et un nombre c tel que ax² + bx + c = 0");
printf("\n\na = ? , b = ? , c = ? :");
scanf("%hd %hd %hd",&a, &b, &c);
printf("\n%hdx² + %hdx + %hd = 0", a,b,c);
rho=b*b-4*a*c ;
temp= sqrt(rho);
if (rho >0)
printf("\n\nLes racines sont : %f et %f", (-b+ temp)/(2*a),(-b - temp)/(2*a));
else if (rho == 0)
printf ("\n\nLa racine est : %.hd ", (-b)/(2*a));
else
printf("\n\nIl n'y a pas de racines");
}
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
3
domain error moi sa me fait penser à erreur dans l'ensemnle de def (c a d quand tu demande a ta casio de faire racine(-5), elle fait la guelle .

(1)==> met ensemble les 2 premier printf (); pour gagner de la place
(2)==>inutile d'utiliser un 'h' devant le d, en car si je mamuse a entrer c = 256 c est overflow et "K C le processus" lol, surtout s tu est sous windows .
(3)==> moi je ferrais sa a ta place
if (!(rho b*b-4(a*c))) {/* rho 0, on a une solution double*/}
if (rho>0){/*on a 2 racine réelle*/}else {/*on a 2 racine imaginaire voir cour terminal S)
(4)==>degage la librairie math.h et fai ta propre fonction racine !

voila, @+, vinc1008881
Messages postés
15192
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 décembre 2021
101
Pourquoi ne pas utiliser math.h?? C'est bête de ré-inventer la roue à chaque programme, non?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008

Merci pour toutes vos réponses.
Mais comment on crée une fonction? par exemple la fonction racine carré...
Merci d'avance
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008

Ahh voilà je n'ai plus ce message.
J'ai fais quelques modifications. Mais je comprends pas pourquoi j'avais ce message d'erreur avant... Pouvez vous m'expliquer SVP???

#include <stdio.h>
#include <math.h>
main()
{
short a,b,c,rho;
printf("Entrez un nombre a, un nombre b et un nombre c tel que ax² + bx + c = 0");
printf("\n\na = ? , b = ? , c = ? :");
scanf("%hd %hd %hd",&a, &b, &c);
printf("\n%hdx² + %hdx + %hd = 0", a,b,c);
rho=b*b-4*a*c ;
if (rho < 0)
printf("\n\nIl n'y a pas de racines");
else if (rho == 0)
printf ("\n\nLa racine est : %hd ", (-b)/(2*a));
else
printf("\n\nLes racines sont : %.2f et %.2f", (-b+ sqrt(rho))/(2*a),(-b - sqrt(rho))/(2*a));
}
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
salut,

t'avais cette erreur car tu calculais a chaque fois la racine carré de
rho, meme quand il était négatif, ce qui explique le message
sqrt:_DOMAIN error

la fonction sqrt est définie sur l'ensemble des nombre réels positifs et pas sur tout R ...



a+
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Ouai c'est vrai ça

Comment calculer une racine carré mais à base des opérations mathématiques traditionnelles

Genre on oublie les puissance 1/2 pour les malins lol

Vous me rédigerez d'après votre propre expérience et vos seules
connaissances, un rapport qui démontrera dans un premier temps que la
question pose un vrai problème et vous vous dépecherez de résoudre
cette énigme :)

void Aurevoir( void ); //Bonne journée
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
Avec l'algo de Newton
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008

Si je comprends bien, vous me demandez de trouver un procédé avec les opérations mathématiques traditionnelles pour trouver la racine carré de n importe quel nombre réels( positif bien sur )...
Je me trompe? ou c'est bien cela?
Une petite aide peut-être?
Si non a part ça le code de mon "programme" est correcte?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
C'est juste Joky qui délire, il a plus toute sa tête le pauvre
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Non mé ya des questions comme ça lol
void Aurevoir( void ); //Bonne journée
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
3
Salu,
indice ===> sert toi des carée de nombre entier (0, 1, 4, 9, 16...)

enfin je crois .........moi j'aurai fait come sa en tt cas........

@+, vinc1008881

<HR>
le goto, c'est comme un parachute, tu en a casiment jamais besoin, mais quand t'en as besoin....
Messages postés
39
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
29 octobre 2008

Explique pourquoi tu aurais utiliser des carrées de nombre entier?
Donne moi un exemple stp.