Problème avec condition if

Résolu
jimmylibilibob Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous.

Alors voila, j'entame ma deuxième année en informatique et j'ai un exercice a faire ou je cale un peu :( les vacances m'ont fais perdre un peu la main ^^

voici l'énoncé :
Au fur et à mesure de l'encodage au clavier d'unités téléphoniques, déterminer le montant de
facture du mois sur base des règles suivantes:
-0,75 € l'unité, de 0 à 80 unités, avec un minimum forfaitaire de 25 €
-0,30 € pour les 60 unités suivantes
-0,25 € pour les 60 unités suivantes
-0,20 € pour toutes les unités au-delà de 200

la ou je cale c'est pour le minimum forfaitaire j'ai beau faire plein de test j'ai toujours des problème :(

voila ce que j'ai fais :
void Unitel()
{
double unite, m, r, a;
int choix;
choix = 1;
printf("nombre d unite ? ");
scanf("%lf",&unite);
while (choix != 10000000)
{
if (unite <= 80)
{
m = unite * 0.75;
printf("Votre facture est de %.2f euro",m);
printf("\nnombre d unite ? ");
scanf("%lf",&a);
unite = unite + a;
}

else if (unite <= 140)
{
m = 80 * 0.75;
r = unite - 80;
m = m + r * 0.3;
printf("Votre facture est de %.2f euro",m);
printf("\nnombre d unite ? ");
scanf("%lf",&a);
unite = unite + a;
}

else if (unite <= 200)
{
m = 80 * 0.75;
m = m + 60 * 0.3;
r = unite - 140;
m = m + r * 0.25;
printf("Votre facture est de %.2f euro",m);
printf("\nnombre d unite ? ");
scanf("%lf",&a);
unite = unite + a;
}

else
{
m = 80 * 0.75;
m = m + 60 * 0.3;
m = m + 60 * 0.25;
r = unite - 200;
m = m + r * 0.2;
printf("Votre facture est de %.2f euro",m);
printf("\nnombre d unite ? ");
scanf("%lf",&a);
unite = unite + a;
}

}

Merci a ceux qui prendront le temps de m'aider :D

5 réponses

juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
Bonjour,

Ta boucle while() principale est boucle infinie car la variable "choix" n'évoluera pas dans ton programme.
Et si c'est fait exprès pour faire une boucle infinie, dans ce cas fait plutôt while (1).

Tu pourrais expliquer ton code un peu plus en details ?

Est ce que ton programme est sensé demander plusieurs fois à l'utilisateur de rentrer un nombre d'unités ? Si oui ; jusqu'a quand, comment l'user est-il censé quitter ton programme ? Dans ce cas serait la somme de la valeur de toutes les unités entrés qui doit être supérieure à 25 €?
Ou est-ce qu'il est censé le demander seulement une fois et la valeur en € du nombre d'unités demandé doit-être supérieure à 25 € ?

Merci pour les renseignements, Cdlt.
0
jimmylibilibob Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Pour la boucle while et la variable choix (c'est une peu fais exprès, ce soir j'essaye de faire en sorte que quand l'utilisateur tape "end" cela se termine) mais ça j'en fais mon affaire ^^

mon programme dois se dérouler ainsi :

Demande : Nombre d'unité ? _ 10
affiche : Votre facture est de 25 euro
Demande : Nombre d'unité ? _ 20
30 x 0.75 = 22.5
affiche : Votre facture est de 25 euro
Demande : nombre d'unité ? _ 10
40 x 0.75 = 30
affiche : Votre facture est de 30 euro

et ainsi de suite

mais ce qui me dérange réelement c'estl e minimum forfaitaire, j'aurai aimer faire une condition dans une autre mais je croit que c'est impossible : / alors comment faire :( ?

Merci pour votre réponse :)
0
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
Pourquoi une condition dans une autre ne serait pas possible ?
Essayes pour voir !

C'est en forgeant qu'on devient forgeron comme on dit...


0
jimmylibilibob Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Haha cette fois ci j'ai réussi (je t'assure j'avais déjà essayer mais a 04:25 je devais être fatigué ^^)

Un grand merci a toi ! :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
At your service :)

N'hésites pas à revenir si t'as d'autres questions !
0