[C]problème de calcule d'arcosinus

Résolu/Fermé
antoinou2958 Messages postés 27 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 27 avril 2005 - 26 avril 2005 à 17:11
antoinou2958 Messages postés 27 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 27 avril 2005 - 27 avril 2005 à 15:52
Bonjour, j'essaye de faire un petit programme qui entre autre calcule les angles d'un triangle mais le problème est que quelque soit la longueure que je tape, arcosinus me renvoie toujours -1 alors je ne comprend pas,
" acb = acos(bc/ac); " (sachant que bc et ac sont connus et que ac, bc et acb sont "float"). Merci de vos aides

3 réponses

Salut,
bien pour moi ca m'as l'air ok vu comme ca.
ac, bc et acb sont déclaré en float.
les parametre de acos sont en double petit coup de cast normalement mais meme sans ca doit passer:

//Petit source exemple
#include "math.h"
#include "stdio.h"

int main(int argc, char* argv[]){
	float bc=1;
	float ac=0;
	float acb=0;
	
	acb=(float)acos((double)(ac/bc));
	printf("ac:%f, bc:%f, abc:%f\n",ac,bc,acb);

	return 0;
}


tu met soit tes variables en double et tu casts pas, ou tu casts.

voila,

bon courage

A++
0
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 328
27 avril 2005 à 11:01
-1 signifie une erreur la plupart du temps.
question : est-tu sur que ton quotient dans acos est bien compris entre -1 et 1 ?
si ton problème n'est pas résolue essai acos(0.5) par exemple voir si ça passe.
0
antoinou2958 Messages postés 27 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 27 avril 2005 1
27 avril 2005 à 15:52
non en fait j'ai mis un etmps fou à trouver mais c'est une erreur à la con: le résultat est censé me donner un angle en degré et en fait il le donne en radian donc une ptite formule pour convertir degré en radian et sa marche nickel. Merci quand même pour votre aide
0