C: problème de virgule sur fonction SQRT

curite Messages postés 66 Statut Membre -  
curite Messages postés 66 Statut Membre -
Bonjour,

j'ai créer un petit programme permettent de calculer l'hypoténuse d'un triangle, je suis débutant ^^.
Voici le code:

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
int nomb1;
int nomb2;
int hypo;
int result;
printf("Premier cote de l'angle droit:\n");
scanf("%d",&nomb1);
printf("Deuxième cote de l'angle droit:\n");
scanf("%d",&nomb2);
nomb1 = nomb1 * nomb1;
nomb2 = nomb2 * nomb2;
result = nomb1 + nomb2;
hypo = sqrt(result);
printf("L'hypotenuse est egal a %d",hypo);

return 0;

}

En faite quand je le lance et que pour les deux coté de l'angle droit je met 20, comme résultat il me met 28
et j'ai refais le calcul sur ma calculette sa fait 28.284271...
Quelqu'un pourrait-il m'indiquer s'il y a une erreur ou ce qu'il faut que je modifie pour que le résultat soit a virgules?
Merci!!

2 réponses

chuka Messages postés 980 Statut Membre 378
 
Salut,
C'est parce que tu utilises un type int (entier) pour hypo...
Declare le comme un double ou float...(et pense à modifier le printf pour qu'il te l'affiche en double...)
@+
0
curite Messages postés 66 Statut Membre 13
 
Merci sa marche!!
0