Problème de divisions en C

DexRoot Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, dans le code suivant :
int main()
{
    int ab = 0, ac = 0, hypotenuse = 0, abcarre = 0, accarre= 0, hcarre =0;
    printf("Veuillez entrer la valeur du premier cote (pas l'hypotenuse)\n");
    scanf("%d", &ab);
    printf("Veuillez entrer la valeur du second cote (pas l'hypotenuse)\n");
    scanf("%d", &ac);
    abcarre = ab * ab;
    accarre = ac * ac;
    hcarre = abcarre + accarre;
    hypotenuse = hcarre / hcarre;
    printf("\n\nOn sait que [premier cote] = %d ;", ab);
    printf("\nOn sait aussi que [deuxieme cote] = %d ;", ac);
    printf("\nOr dans un triangle rectangle, le carre de la longueur de l'hypotenuse est egal a la somme des carres des longueurs des deux autres cotes.\nDonc l'hypotenuse du triangle = %d", hypotenuse);
    return 0;
}


qui est censé me donner la longueur de l'hypoténuse d'un triangle rectangle, le résultat me donne 1 au lieu du célèbre 5.
Je pense que le problème vient de la division.
Help svp ?
Merci

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
bonjour,
x / x n'est pas la racine de x mais vaut 1 (pour x différent de 0).
Pour la racine il faut utiliser sqrt () dans la libmath (bibliothèque à lier) et penser à inclure math.h

Cdlt
0
DexRoot Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Ce qui donnerait au niveau du code ?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
hypothenuse=(int)sqrt(hcarre);
0
totodunet Messages postés 1377 Date d'inscription   Statut Membre Dernière intervention   200
 
ton algorithme que je traduis est le suivant :

hypothenuse=[(ab)²+(ac)²]/[(ab)²+(ac)²]=1

donc c'est logique qui te donne ce résultat.

il n'y a pas de division à faire dans le théorème de Pythagore
0