Bonjour, j'ai un petit problème, voilà la fonction de mon fichier .c de la dll

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;
}
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
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;
}
pour A(3;2) et B(-2;-2) il me retourne :

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,