Bonjours !
Voila je viens avec un petit problème qui me cause des gros soucis : Un bug !
Voila ce que ce code est censé faire : il prend nos coordonnés (x,y) et un nombre n de points (Xi,Yi)
il doit retourner le point le pus proche....
Le code marche !
mais lorsque je l'exécute dans un programme de test automatique (avec une centaine de valeurs aléatoires) il me fait une erreure fattale....

en espérent pourvoir résoudre ce léger probleme, je vous joint le code (la, maintenant, tout de suite)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int gps(int x, int y, int n, int** centres)
{
int* dist;
int curseur = n;
int min = n;
dist = calloc(n,sizeof(int));
for(int _l = 0; _l < n; ++_l)
dist[_l] = (int)sqrt((x-centres[_l][0])*(x-centres[_l][0])+(y-centres[_l][1])*(y-centres[_l][1]));
for(int _l = 0; _l < n; ++_l,--curseur)
{
if(dist[curseur]<=dist[min]) min = curseur;
}
return min;
}
int main(void)
{
int x;
int y;
int n;
int g;
int** centres;
scanf("%d", &x);
scanf("%d", &y);
scanf("%d", &n);
centres = calloc(n, sizeof(int*));
for(int _l = 0; _l < n; ++_l)
centres[_l] = calloc(2, sizeof(int));
for(int _l = 0; _l < n; ++_l)
for(int _c = 0; _c < 2; ++_c)
scanf("%d", ¢res[_l][_c]);
g = gps(x, y, n, centres);
printf("%d %d",centres[g][0],centres[g][1]);
return 0;
}
Moi j'ai toujours rigolé, mais juste pour rire...