Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Débutant demande conseil

3 réponses
Avatar
HB
Bonjour,

je début dans dans la programmation, j'ai fait un petit exercice et je ne
comprends pas pourquoi il ne fonctionne pas correctement. le programme a
était écrit avec Code Block.

Normalement il devrait donner la remise de 1% si montant entre 2000 et 5000
et 2% si supèrieur à 5000, ainsi que le prix net à payer. Mais a chaque fois
il me donne la remise de 1% et de 2% quelque soit le motant.

Si vous pouviez m'expliquer pourqoui mon programme réagis ainsi :

merci

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

int main()
{

float ttc,remise,prix;
float un = 1;
float deux = 2;
printf("Entrez le prix d'achat TTC\n");
scanf (" %f", &ttc);
if ((ttc>=2000) && (ttc<=5000));
{
remise = ttc*un/100;
prix = ttc- remise;
printf("\nla remises commercial est de %10.3f le net a payer est de
%10.3f\n", remise, prix);
}
if (ttc > 5000);
{
remise = ttc*deux/100;
prix = ttc - remise;
printf ("\nla remise commercial est de %10.3f le net a payer est de
%10.3f\n", remise, prix);
}
return 0;
}

3 réponses

Avatar
espie
In article <48cac518$0$4193$,
HB wrote:
Bonjour,

je début dans dans la programmation, j'ai fait un petit exercice et je ne
comprends pas pourquoi il ne fonctionne pas correctement. le programme a
était écrit avec Code Block.

Normalement il devrait donner la remise de 1% si montant entre 2000 et 5000
et 2% si supèrieur à 5000, ainsi que le prix net à payer. Mais a chaque fois
il me donne la remise de 1% et de 2% quelque soit le motant.

Si vous pouviez m'expliquer pourqoui mon programme réagis ainsi :

merci

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



Si tu veux faire du C++, achete-toi un bouquin de C++... les <stdio.h>
et consort, c'est du C, et ca n'est meme pas dans la norme.

int main()
{

float ttc,remise,prix;
float un = 1;
float deux = 2;
printf("Entrez le prix d'achat TTCn");
scanf (" %f", &ttc);
if ((ttc> 00) && (ttc<P00));



Un ; en trop -> instruction vide. Le bloc qui suit est
toujours effectue...

{
remise = ttc*un/100;
prix = ttc- remise;
printf("nla remises commercial est de %10.3f le net a payer est de
%10.3fn", remise, prix);
}
if (ttc > 5000);
{
remise = ttc*deux/100;
prix = ttc - remise;
printf ("nla remise commercial est de %10.3f le net a payer est de
%10.3fn", remise, prix);
}
return 0;
}



Je ne sais pas ce que vaut CodeBlock, mais c'est tres surprenant qu'il
ne t'affiche pas au moins un avertissement en voyant un test qui
controle une instruction vide sur la meme ligne, surtout avec un bloc
d'instruction sans raison juste derriere...
Avatar
Wykaaa
Marc Espie a écrit :
In article <48cac518$0$4193$,
HB wrote:
Bonjour,

je début dans dans la programmation, j'ai fait un petit exercice et je ne
comprends pas pourquoi il ne fonctionne pas correctement. le programme a
était écrit avec Code Block.

Normalement il devrait donner la remise de 1% si montant entre 2000 et 5000
et 2% si supèrieur à 5000, ainsi que le prix net à payer. Mais a chaque fois
il me donne la remise de 1% et de 2% quelque soit le motant.

Si vous pouviez m'expliquer pourqoui mon programme réagis ainsi :

merci

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



Si tu veux faire du C++, achete-toi un bouquin de C++... les <stdio.h>
et consort, c'est du C, et ca n'est meme pas dans la norme.

int main()
{

float ttc,remise,prix;
float un = 1;
float deux = 2;
printf("Entrez le prix d'achat TTCn");
scanf (" %f", &ttc);
if ((ttc> 00) && (ttc<P00));



Un ; en trop -> instruction vide. Le bloc qui suit est
toujours effectue...

{
remise = ttc*un/100;
prix = ttc- remise;
printf("nla remises commercial est de %10.3f le net a payer est de
%10.3fn", remise, prix);
}
if (ttc > 5000);





Là aussi, il faut enlever le ;
{
remise = ttc*deux/100;
prix = ttc - remise;
printf ("nla remise commercial est de %10.3f le net a payer est de
%10.3fn", remise, prix);
}
return 0;
}



Je ne sais pas ce que vaut CodeBlock, mais c'est tres surprenant qu'il
ne t'affiche pas au moins un avertissement en voyant un test qui
controle une instruction vide sur la meme ligne, surtout avec un bloc
d'instruction sans raison juste derriere...


Avatar
HB
Je m'excuse j'étais sur le mauvais groupe, mais j'ai trouvé l'erreur

Merci
"Wykaaa" a écrit dans le message de news:
48cae62c$0$875$
Marc Espie a écrit :
In article <48cac518$0$4193$,
HB wrote:
Bonjour,

je début dans dans la programmation, j'ai fait un petit exercice et je
ne comprends pas pourquoi il ne fonctionne pas correctement. le
programme a était écrit avec Code Block.

Normalement il devrait donner la remise de 1% si montant entre 2000 et
5000 et 2% si supèrieur à 5000, ainsi que le prix net à payer. Mais a
chaque fois il me donne la remise de 1% et de 2% quelque soit le motant.

Si vous pouviez m'expliquer pourqoui mon programme réagis ainsi :

merci

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



Si tu veux faire du C++, achete-toi un bouquin de C++... les <stdio.h>
et consort, c'est du C, et ca n'est meme pas dans la norme.

int main()
{

float ttc,remise,prix;
float un = 1;
float deux = 2;
printf("Entrez le prix d'achat TTCn");
scanf (" %f", &ttc);
if ((ttc> 00) && (ttc<P00));



Un ; en trop -> instruction vide. Le bloc qui suit est
toujours effectue...

{
remise = ttc*un/100;
prix = ttc- remise;
printf("nla remises commercial est de %10.3f le net a payer est de
%10.3fn", remise, prix);
}
if (ttc > 5000);





Là aussi, il faut enlever le ;
{
remise = ttc*deux/100;
prix = ttc - remise;
printf ("nla remise commercial est de %10.3f le net a payer est
de %10.3fn", remise, prix);
}
return 0;
}



Je ne sais pas ce que vaut CodeBlock, mais c'est tres surprenant qu'il
ne t'affiche pas au moins un avertissement en voyant un test qui
controle une instruction vide sur la meme ligne, surtout avec un bloc
d'instruction sans raison juste derriere...