Volume du cone

Résolu
reine de joie Messages postés 9 Statut Membre -  
reine de joie Messages postés 9 Statut Membre -
Bonjour,

mon code sert à calculer le volume d'un cone mais il m'affiche toujours une valeur nulle
je ne sais pas pourquoi
SVP aidez moi à savoir mes fautes aussi à savoir comment faire pour controler les chiffres aprés la virgule

voilà le code

#include <stdio.h>
#include <conio.h>
#include <math.h>
#define pi 0.14
typedef struct
{
float x;
float y;
float z;
}point;

typedef struct
{
float rayon;
point centre;
}cercle;

typedef struct
{
cercle base;
point sommet;
}cone;
void saisie(point * p, char c)
{
printf("Donner les coordonnées de %c\n",c);
printf("Donner X\n");
scanf("%f",&p->x);
printf("Donner Y\n");
scanf("%f",&p->y);
printf("Donner Z\n");
scanf("%f",&p->z);
}
void affiche(point p,char c)
{
printf("Les cordonnées de %c\n",c);
printf("X= %f\n",p.x);
printf("Y= %f\n",p.y);
printf("Z= %f\n",p.z);
}
float hauteur(cone S)
{ float a,b,c;
a=pow(S.sommet.x-S.base.centre.x,2);
b=pow(S.sommet.y-S.base.centre.y,2);
c=pow(S.sommet.z-S.base.centre.z,2);
return(sqrt(a+b+c));
}
void main()
{
cone S;
point s,c;
float V,H;
saisie(&s,'s');
saisie(&c,'c');
affiche(s,'s');
affiche(c,'c');
printf("donner le rayon de le base:\n");
scanf("%f",&S.base.rayon);
H=hauteur(S);
V=pi*0.33*pow(S.base.rayon,2)*H;
printf("le volume de la cone est %f\n",V);
getch();
}

merci d'avance

1 réponse

  1. Utilisateur anonyme
     
    Bonjour

    J'ai l'impression à lire ton programme que ton cône C n'a aucun rapport avec le cercle c et le sommet s que tu saisis.
    En fait, les variables s et c ne devraient pas exister, tu devrais saisir C->base et C->sommet
    0
    1. reine de joie Messages postés 9 Statut Membre
       
      salut
      en fait s c'est la sommet et c le centre que j'ai saisi mais j'ai oublier de faire
      les affectations suivantes
      s=S.sommet;
      c=S.base.centre;
      0
    2. Utilisateur anonyme
       
      ces variables temporaires n'apportent rien, si ce n''est qu'on risque d'oublier une affectation : la preuve, tu l'as fait. Pourquoi ne veux-tu pas travailler directement sur C ?
      0
    3. reine de joie Messages postés 9 Statut Membre
       
      comment?
      0
    4. Utilisateur anonyme
       
      remplace
      saisie(&s,'s'); 
      saisie(&c,'c'); 
      
      par
      saisie(&C.sommet,'s');
      saisie (&C.base.centre,'c');
      0
    5. reine de joie Messages postés 9 Statut Membre
       
      ok merci
      0