Problème avec condition if

Résolu/Fermé
jimmylibilibob Messages postés 13 Date d'inscription dimanche 8 septembre 2013 Statut Membre Dernière intervention 4 décembre 2021 - 8 sept. 2013 à 04:25
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 - 9 sept. 2013 à 16:14
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 dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
9 sept. 2013 à 11:36
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 dimanche 8 septembre 2013 Statut Membre Dernière intervention 4 décembre 2021
9 sept. 2013 à 15:10
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 dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
9 sept. 2013 à 15:22
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 dimanche 8 septembre 2013 Statut Membre Dernière intervention 4 décembre 2021
Modifié par jimmylibilibob le 9/09/2013 à 16:09
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 dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
9 sept. 2013 à 16:14
At your service :)

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