Bonjour, j'ai un petit problème, voilà la fonction de mon fichier .c de la dll
mon programme "test" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 char* SAMSOFT_MATHSDLL_API ss_calc_a_b_fct_lineaire(double y1, double y2, double x1, double x2) { //fonction permettant de trouver a et b d'une fonction linéaire de manière algébrique// //fonction exemple : f(x) = ax + b double a; double b; char* pBuffer = malloc(TAILLE_BUFFER * sizeof(*pBuffer)); a = (y1 - y2)/(x1 - x2); b = y1 - a*x1; if(pBuffer != NULL) { sprintf(pBuffer, "f(x) = %fx + %f", a, b); } return pBuffer; }
pour A(3;2) et B(-2;-2) il me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #include <stdio.h> #include <stdlib.h> #include "samsoft_maths.h" //Contient les prototypes des fonctions de la Dll int main() { double x1, x2, y1, y2; char* resultat; //résultat// printf("\nTapez votre nombre x1 : "); fflush(stdout); scanf("%lf", &x1); printf("\nTapez votre nombre y1 : "); fflush(stdout); scanf("%lf", &y1); printf("\nTapez votre nombre x2 : "); fflush(stdout); scanf("%lf", &x2); printf("\nTapez votre nombre y2 : "); fflush(stdout); scanf("%lf", &y2); resultat = ss_calc_a_b_fct_lineaire(y1, y2, x1, x2);//Appel de la fonction ss_calc_a_b_fct_lineaire if (resultat != NULL) { printf("\n%s\n\n", resultat); free (resultat), resultat = NULL; } system("PAUSE"); return EXIT_SUCCESS; }
a = 0.800000 et b = -0.400000 alors qu'il devrait retourner :
a = 2.4 et b = -5.2
car 2.4*3 + (-5.2) donne bien 2 !
Quelle est la solution à mon problème ?
Merci,![]()
Partager