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 -
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
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
A voir également:
- Problème avec condition if
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Excel champ calculé avec condition - Forum Excel
- Excel copier une cellule si condition ✓ - Forum Excel
- Nbval avec condition - Forum Excel
5 réponses
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.
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.
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 :)
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 :)
Pourquoi une condition dans une autre ne serait pas possible ?
Essayes pour voir !
C'est en forgeant qu'on devient forgeron comme on dit...
Essayes pour voir !
C'est en forgeant qu'on devient forgeron comme on dit...
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 ! :)
Un grand merci a toi ! :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question