Aidez moi SVP a resoudre se algo en langage C

Résolu/Fermé
strixdev Messages postés 17 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 15 août 2012 - 5 nov. 2010 à 00:39
strixdev Messages postés 17 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 15 août 2012 - 5 nov. 2010 à 01:41
Salut!
Bon l'exo c'est:

A partir d'un montant lu, on détermine le montant nete pour l'application d'une remise.
- La remise de 1% si le montant est compri entre 2000 et 5000 (valeur comprise).
- La remise de 2% si le montant est supérieure de 5000.

Voila le code source:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
float a = 0, b = 0, c = 0;
printf("Entrer le montant: ");
scanf("%f", &a);
if (a >= 2000 && a <= 5000)
{
b = a - ( ( 1 / 100 ) * a );
printf("Le montant final est: ");
printf("%f\n", b);
}
else if (a > 5000)
{
c = a - ( ( 2 / 100) * a );
printf("Le montant final est: ");
printf("%f\n", c);
}
system("PAUSE");
return 0;
}


Il n y a pas une erreur syntaxique, mais quand j'exécute le programme, il affiche moi juste le montant que j'ai entrer sans le calculer pour faire la remise.

D'où viens le problème.
Merci d'avance
A voir également:

1 réponse

[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
5 nov. 2010 à 01:20
Bonsoir,

En faisant ( 1 / 100 ), tu fais une division sur des entiers, le résultat étant 0, le produit fait 0 et tu ne soustrait rien à la valeur de a.

Pour faire une division réelle de ces deux chiffres, tu peux faire cela (1.0 / 100.0)


Dal
1
strixdev Messages postés 17 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 15 août 2012
5 nov. 2010 à 01:23
Merci bcp, sa marche mnt, merci bcp :)
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
5 nov. 2010 à 01:35
De rien :-)

A mon sens, il manque le cas où il n'y a pas de remise.

Tu pourrais utiliser une seule variable également, au lieu de 3, et factoriser le code. Tu n'as pas non plus fait de contrôle d'erreur sur la saisie.
0
strixdev Messages postés 17 Date d'inscription mercredi 3 novembre 2010 Statut Membre Dernière intervention 15 août 2012
5 nov. 2010 à 01:41
oui j'ai fais le cas ou il y a pas de remise, et sa marcher.
Pour les variables, j'aime bien utiliser bcp d variables pour ne pas se troubler, je suis habitué lol :)
0