type "short" erreur de calcul, pourquoi ?
Bonsoir,
Je commence à programmer en C (sous linux avec le compilateur gcc 4.0), il nous est demandé de faire un programme pour résoudre une équation du 2nd degré, jusque là ok, mais si j'utilise le type short à la place de int les calculs sont faux, quelqu'un peut-il me dire pourquoi? 8O
Merci, voici le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include <stdio.h>
#include <math.h>
main ()
{
int a, b, c, delta; //ne fonctionne pas avec short
printf("\nEntrez les 3 coefficients de l'equation du 2nd degre", a, b, c\n");
scanf("%d %d %d",&a,&b,&c);
if (a != 0)
{
printf("\nvaleur de delta = %d\n",delta = pow(b,2) - (4*a*c));
if (delta > 0)
printf("\nla racine 1 = %.2f et la racine 2 = %.2f\n",((-b + sqrt(delta)) / (2 * a)), ((-b -(sqrt(delta))) / (2 * a)));
/* la fct sqrt() renvoie un double, donc pas besoin de changement de type)*/
else if (delta == 0)
printf("\nla racine = %.2f\n",-(float)b/(2 * a));
else printf("\npas de racine reelle\n");
}
else printf("\n pas une equation du 2nd degre");
} |