Problème avec une fonction
elattarmh
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
elattarmh Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
elattarmh Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
à partir d'un tableau de points je veux afficher seulement ceux qui vérifient une équation pour cela j'ai écris la fonction suivant:[CODE]
typedef struct Point
{
float x;float y;float z;
};
Point *equation(Point a,Point b,Point tableau[taille])
{
Point *sorti=(Point *)malloc(taille*sizeof(Point ));
int cpt=0;
float equation;
float landa=-((a.x*b.x)+(a.y*b.y)+(a.z*b.z));
for(int i=0;i<taille;i++)
{
equation=((a.x*tableau[i].x)+(a.y*tableau[i].y)+(a.z*tableau[i].z))+landa;
if(equation==0.0)
{ sorti[cpt].x=p[i].x;sorti[cpt].y=p[i].y;sorti[cpt].z=p[i].z;cpt++; }
}
return sorti;
}[/CODE]
malheuresement elle me renvoit des valeurs qui n'existe plus dans le tableau initial !
cordialement
à partir d'un tableau de points je veux afficher seulement ceux qui vérifient une équation pour cela j'ai écris la fonction suivant:[CODE]
typedef struct Point
{
float x;float y;float z;
};
Point *equation(Point a,Point b,Point tableau[taille])
{
Point *sorti=(Point *)malloc(taille*sizeof(Point ));
int cpt=0;
float equation;
float landa=-((a.x*b.x)+(a.y*b.y)+(a.z*b.z));
for(int i=0;i<taille;i++)
{
equation=((a.x*tableau[i].x)+(a.y*tableau[i].y)+(a.z*tableau[i].z))+landa;
if(equation==0.0)
{ sorti[cpt].x=p[i].x;sorti[cpt].y=p[i].y;sorti[cpt].z=p[i].z;cpt++; }
}
return sorti;
}[/CODE]
malheuresement elle me renvoit des valeurs qui n'existe plus dans le tableau initial !
cordialement
2 réponses
-
if(equation==0.0) { sorti[cpt].x=p[i].x;sorti[cpt].y=p[i].y;sorti[cpt].z=p[i].z;cpt++; }
C'est quoi "p" ??
Il faut aussi initialiser "sorti" avec quelque chose (éventuellement avec un else). -
pardon, j'ai une faute là ! c'est tableau[i] et pas p[i]
{ sorti[cpt].x= tableau[i].x;sorti[cpt].y= tableau[i].y;sorti[cpt].z= tableau[i].z;cpt++; }