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

Fermé
Yuku Messages postés 199 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 22 mars 2012 - 17 oct. 2008 à 15:42
 toto - 17 oct. 2008 à 15:45
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...

1 réponse

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