programme cherche les racines des polynomes [C] - C - Programmation
Marsh Posté le 16-10-2011 à 16:18:09
printf("entrez A : " );
scanf("%d",a);
printf("entrez B : " );
scanf("%d",b);
printf("entrez C : " );
scanf("%d",c);
C'est faux:
printf("entrez A : " );
scanf("%d",&a);
printf("entrez B : " );
scanf("%d",&b);
printf("entrez C : " );
scanf("%d",&c);
Devrait mieux marcher
Marsh Posté le 16-10-2011 à 21:08:17
oui merci beaucoup
pour mon next problème c'est que j'aimerais avoir la valeur exacte des racine j'ai donc passer x1 x2 et delta en float mais ca me donne des valeurs aberrante
et ma deuxieme question c'est que parfois je ne peux pas utiliser le debugger de code blocks tout est griser pourquoi ?
merci d'avance
Marsh Posté le 17-10-2011 à 00:40:38
poneyz a écrit : pour mon next problème c'est que j'aimerais avoir la valeur exacte des racine j'ai donc passer x1 x2 et delta en float mais ca me donne des valeurs aberrante
|
Salut
Le problème, c'est que le calcul se fait dans la précision de l'opérande le plus large impliqué. Or a et b étant des int, le calcul se fait en int et le résultat (entier) est ensuite copié dans x1 et x2 mais c'est trop tard, tu as déjà perdu les décimales
Code :
|
Avec un double impliqué (2.0), le calcul se fera en précision double.
Attention, il faut bien comprendre que le calcul se fait avec la précision des opérandes strictement impliqués par chaque opération et non dans la précision de l'opérande le plus large qu'on peut trouver dans le calcul. Exemple
Code :
|
La division étant prioritaire, le premier calcul sera 5/2 et se fera donc en précision int (le 3.0 n'étant pas impliqué ne sera pas pris en compte). Le résultat sera alors en int (2) et sera ensuite additionné à 3.0 pour donner 5.0 ce qui ne correspond pas au résultat espéré (5.5)
poneyz a écrit : et ma deuxieme question c'est que parfois je ne peux pas utiliser le debugger de code blocks tout est griser pourquoi ? |
Alors là...
PS: inutile de passer par fabs() quand delta < 0. Puisque delta est <0, te suffit de prendre -delta. Plus rapide quoi. Toutefois, dans ce cas là, le polynôme n'a pas de racine réelle donc ce que tu affiches est faux...
Marsh Posté le 17-10-2011 à 11:56:16
Salut,
merci beaucoups pour toute ces précision je comprend mieux maintenant merci encore
PS si tu veux dire que pour le delta <0 les racines sont complexe je le savais mais j ai juste voulu voir si ça marchais je rajouterais le j après.
il manque encore pas mal de truc nottament vérifier que la saissi par l utilisateur de a b et c soient bien des nombres et non des lettres
Marsh Posté le 17-10-2011 à 21:30:06
poneyz a écrit : il manque encore pas mal de truc nottament vérifier que la saissi par l utilisateur de a b et c soient bien des nombres et non des lettres |
Code :
|
Marsh Posté le 16-10-2011 à 16:09:35
Salut,
voila je débute en C et j'ai essayer de faire pour m'amuser (je sais qu'il y a plus ludique mais bon) un programme qui trouverais la valeur des racines qui annule un polynôme du second degrés.
J'ai déjà écrit une bonne partie du code sous code blocks j'ai choisi comme type de projet console application (je sais pas si cette précision est pertinente)
voici mon code
mais voila quand je le compile et l’exécute grâce au bouton prévus par code blocks , la console me demande d'entrer A ce que je fait puis mon programme crash quelqu'un a une idée?
merci d'avance