[C]problème de calcule d'arcosinus

Résolu
antoinou2958 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
antoinou2958 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -
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 9813 Date d'inscription   Statut Contributeur Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention   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