Comparer deux nombres entiers

Comparer deux nombres entiers - C - Programmation

Marsh Posté le 16-09-2009 à 20:11:28    

Bonsoir,
 
J'ai une simple petite question qui me m'énerve depuis maintenant quelque lourde de dizaine de minutes...
Je tiens a préciser, que je suis débutant en C.
 
Je souhaite simplement réaliser un programme qui compare deux nombres entiers (a et b), si a>0 et b>0 je dois afficher vrai, sinon faux. J'ai donc realisé mon petit organigramme, puis mon programme que voici.
 

Code :
  1. #include <stdio.h>
  2. float a,b;
  3. #define T 0
  4. void main ()
  5. {
  6.     printf("Entrez deux nombres entiers \n" );
  7.     scanf("%f%f",&a,&b);
  8. if('a'>T && 'b'>T)
  9. {
  10.     printf("VRAI" );
  11. }
  12. else
  13. {
  14.     printf("FAUX" );
  15. }
  16. }


 
Or, une fois que j'exécute le programme, quand je rentre a<T et b>T il m'affiche vrai quand même....
 
Pouvez vous m'expliquer ?  
merci

Reply

Marsh Posté le 16-09-2009 à 20:11:28   

Reply

Marsh Posté le 16-09-2009 à 20:33:01    

a>T pas 'a'>T

Reply

Marsh Posté le 16-09-2009 à 20:49:01    

En effet... merci !

Reply

Marsh Posté le 17-09-2009 à 03:37:46    

Juste pour l'explication, tu comparais un char au lieu d'utiliser le contenu de ton float, or selon la table ASCII:
 
'a' = 97
'b' = 98
 
97>0
98>0

Reply

Marsh Posté le 18-09-2009 à 11:43:06    

blazer69 a écrit :

Je souhaite simplement réaliser un programme qui compare deux nombres entiers (a et b),...
 

Code :
  1. #include <stdio.h>
  2. float a,b;
  3. #define T 0
  4. void main ()
  5. {
  6.     printf("Entrez deux nombres entiers \n" );
  7.     scanf("%f%f",&a,&b);
  8. if('a'>T && 'b'>T)
  9. {
  10.     printf("VRAI" );
  11. }
  12. else
  13. {
  14.     printf("FAUX" );
  15. }
  16. }



 
Tu parles de nombres entiers et tu travailles avec des float. Manifestement, il y a conflit entre ta conception et la réalisation.
Accessoirement, main() est de type int, pas void.


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed