[Lg C]Prog qui s'exécute avec un bug...

Yuku Messages postés 215 Statut Membre -  
 toto -
Bonjour,

J'ai créé un programme afin de m'entraîner aux fonctions, qui demande à l'utilisateur, par exemple gérant de supermarché, le prix d'un article et le temps qu"il reste en rayon...
Selon le temps, le pourcentage de l'objet augmente (une semaine : 5%, sinon : 10% de plus).

Voici mon code, il s'exécute correctement pour les deux scanf mais manifestement il y a un problème ailleurs...

#include <stdio.h>

float lirePrix(void); // Scanf pour le Prix DE BASE
int lireTemps(void); // Scanf pour le temps EN JOURS
float calculPrix(float cout, int duree); // Le Calcul du prix ( +10% ou +5% en fonction du nombre de jours )
void ecrirePrix(float cout, int Duree, float prix); // Printf pour afficher le prix FINAL

int main()
{
    int Duree = 0;
    float Cout = 0, Prix = 0;
    lirePrix ();
    lireTemps (); 
    calculPrix(Cout, Duree);
    ecrirePrix(Cout, Duree, Prix);
  system("PAUSE");	
  return 0;
}






float lirePrix (void)
{
      float Prix = 0.0;
      printf("Rentrez le prix de votre article....    ");
      scanf("%lf", &Prix);
      return Prix;
}






int lireTemps (void)
{
    int Duree = 0;
    printf("\nCombien de jours votre article reste-t-il en rayon....?    ");
    scanf("%d", &Duree);
    return Duree;
}





float calculPrix(float cout, int duree)
{
    float Prix2;
    cout = lirePrix();
    duree = lireTemps();
    if(duree<=7)
    {
           Prix2 = cout + ((cout+5)/100);
    }
    else if(duree > 7)
    {
         Prix2 = cout + ((cout+10)/100);
    }
    return Prix2;
}
                

     
     
void ecrirePrix(float cout, int Duree, float prix)
{
     cout = lirePrix();
     Duree = lireTemps();
     prix = calculPrix(cout, Duree);
     printf("\n\nVotre article a %.2lf qui reste %d jours en rayon coutera donc %.2lf dollars.\n\n", cout, Duree, prix);
}


Merci d'avance !

PS : je sais pertinement que ce genre d'exercice peut être bouclé en 20 lignes dans un main(), mais le but est de s'entraîner en créant des fonctions...
A voir également:

1 réponse

toto
 
Bonjour

Dans ton main, il faut faire Prix=LirePrix(); sinon la valeur retournée par LirePrix est perdue.
Bien sûr, même chose pour la durée...
0