Imcompatibilite de type en c

Fermé
Antoine - Modifié le 22 avril 2020 à 04:37
Jones9000 Messages postés 10 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 6 mai 2020 - 24 avril 2020 à 08:33
Bonjour, j'ai un soucis d'incompatibilité de type. Je vous envoie mon code. Aidez moi à résoudre ce problème merci.
#include <stdio.h>
#include <math.h>
struct pointDansEspace
{
float Ox,Oy,Oz;
};
struct vecteurDansEspace
{
struct pointDansEspace FinSegment,DebutSegment;
float Positif,Negatif;
};
float lgrSegment(struct vecteurDansEspace Ax,struct vecteurDansEspace Ay,struct vecteurDansEspace Az,struct vecteurDansEspace Bx,struct vecteurDansEspace By,struct vecteurDansEspace Bz)
{
float ABX,ABY,ABZ;
float longAB;
ABX=(Bx.FinSegment.Ox) - (Ax.DebutSegment.Ox);
ABY=(By.FinSegment.Oy) - (Ay.DebutSegment.Oy);
ABZ=(Bz.FinSegment.Oz) - (Az.DebutSegment.Oz);
longAB=(ABX*ABX+ ABY*ABY + ABZ*ABZ);
return sqrt(longAB);
}
int main()
{
printf("%g",lgrSegment(3,4,5,6,7,12));
}

2 réponses

Quand j'execute on m'envoie des erreurs sur les arguments de ma fonction.. Quand je l'appelle dans mon main.
Aidez moi svp...
0
Jones9000 Messages postés 10 Date d'inscription lundi 20 avril 2020 Statut Membre Dernière intervention 6 mai 2020 1
24 avril 2020 à 08:33
Bonjour

Ton erreur est totalement normale puisque dans ta déclaration tu as écrit que ta fonction reçoit 6 arguments qui sont des structures vecteurDansEspace et dans le main() tu lui passe 6 entier
Tu crois des variables de type structure vecteurDansEspace et les initialiser dans le main afin de les passer en argument ou bien tu peux passer les arguments sous formes de tableaux genre :
lgrSegment( { { 2 , 3 , 4 }, { 5 , 6 , 7 }, 8 , 9 } , ... )

Cordialement
0