Help, DevC++ fonction retournant un float, résultat très étrange...

yom007 Messages postés 2 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 23 juin 2005 - 21 juin 2005 à 16:36
yom007 Messages postés 2 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 23 juin 2005 - 23 juin 2005 à 10:12
Bonjour,
je travaille sous devC++ et là c'est l'incompréhension, peut-etre qu'une ame charitable pourra venir à mon secours...
J'ai reussi à isoler mon probleme le voici:
J'ai 2 fichiers:

Main.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
float D;
D = Distance(0,0,0,10);
printf("Resultat apres que la fonction aie retournee la valeur: %f\n",D);
system("pause");
}

Transformation.c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>


float Distance(int Xa, int Ya, int Xb, int Yb)
{
float resultat;
resultat = sqrt( (Xa-Xb)*(Xa-Xb) + (Ya-Yb)*(Ya-Yb));
printf("Resultat dans la fonction avant son retour: %f\n",resultat);
return resultat;
}

Voici le resultat:
Resultat dans la fonction avant son retour: 10.000000
Resultat apres que la fonction aie retournee la valeur: 1092616192.000000

Merci beaucoup pour votre aide.

NB: en déclarant Distance() dans Main.c le probleme disparait
en remplacant le type float par int pour Distance() le probleme disparait aussi
A voir également:

3 réponses

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
21 juin 2005 à 17:39
double Distance(int Xa, int Ya, int Xb, int Yb)
{
double resultat;
resultat = sqrt(float((Xa-Xb)*(Xa-Xb)+(Ya-Yb)*(Ya-Yb)));
printf("Resultat dans la fonction avant son retour: %f\n",resultat);
return resultat;
}


void Aurevoir( void ); //Bonne journée
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
21 juin 2005 à 19:21
encore mieux: resultat = (float)sqrt(float((Xa-Xb)*(Xa-Xb)+(Ya-Yb)*(Ya-Yb)));

(sqrt retourne un double; mais les compilos d'aujour'hui st sympas et ca passe qd meme)

_______________________


Omnia vincit labor improbus
0
yom007 Messages postés 2 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 23 juin 2005
23 juin 2005 à 10:12
Merci à vous !
^^
0
Rejoignez-nous