Problème de divisions en C

Fermé
DexRoot Messages postés 2 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 27 février 2014 - 26 févr. 2014 à 14:06
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 27 févr. 2014 à 17:23
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
26 févr. 2014 à 18:43
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 mercredi 26 février 2014 Statut Membre Dernière intervention 27 février 2014
27 févr. 2014 à 16:43
Ce qui donnerait au niveau du code ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
27 févr. 2014 à 17:23
hypothenuse=(int)sqrt(hcarre);
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
26 févr. 2014 à 18:44
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