[C]problème de calcule d'arcosinus

Résolu
antoinou2958 Messages postés 27 Statut Membre -  
antoinou2958 Messages postés 27 Statut Membre -
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

hexanium
 
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 10112 Statut Contributeur 1 299
 
-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 Statut Membre 1
 
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