Programme en c
Fermé
clintm
Messages postés
689
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
10 juin 2015
-
31 juil. 2005 à 12:41
ceddec Messages postés 148 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 10 mars 2012 - 2 août 2005 à 10:00
ceddec Messages postés 148 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 10 mars 2012 - 2 août 2005 à 10:00
A voir également:
- Programme en c
- Programme demarrage windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Fichier ouvert dans un autre programme - Guide
- Desinstaller un programme - Guide
- Programme bonjour c'est quoi ✓ - Forum Logiciels
5 réponses
ceddec
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
31 juil. 2005 à 16:15
31 juil. 2005 à 16:15
Bonjour,
Je ne suis pas sur mais je crois que lorsque tu tapes 9 au clavier, le programme récupère la valeur ASCII du 9 ( c'est à dire 57 ). Ainsi, il est normal que le programme affiche incorrect.
Pour parer à ce problème il faut enlever 48 à la valeur qui est lue au clavier.
Je ne suis pas sur mais je crois que lorsque tu tapes 9 au clavier, le programme récupère la valeur ASCII du 9 ( c'est à dire 57 ). Ainsi, il est normal que le programme affiche incorrect.
Pour parer à ce problème il faut enlever 48 à la valeur qui est lue au clavier.
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
31 juil. 2005 à 20:31
31 juil. 2005 à 20:31
C'est effectivement ça je pense. Utilise plutôt la commande scanf et ça ira beaucoup mieux ;)
Bonne chance
Bonne chance
clintm
Messages postés
689
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
10 juin 2015
75
31 juil. 2005 à 22:44
31 juil. 2005 à 22:44
salut
scanf a la place de quoi
scanf a la place de quoi
ceddec
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
>
clintm
Messages postés
689
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
10 juin 2015
31 juil. 2005 à 22:55
31 juil. 2005 à 22:55
scanf est une autre commande pour lire au clavier
tu remplace
x = getc( stdin );
par
int x;
scanf ("%d",&x);
Ainsi la variable x est un entier, donc tu peux directement faire tes opérations dessus.
Ton programme devient :
#include <stdio.h>
#include <stdlib.h>
main ()
{
int x;
scanf ("%d",&x);
if( 8 + 1 == x )
printf("Correct");
else
printf("InCorrect");
}
Il y a des explications sur scanf ici :
http://www.cplusplus.com/ref/cstdio/scanf.html (anglais)
http://membres.lycos.fr/dancel/c/c60_40.htm (français mais moins complet)
tu remplace
x = getc( stdin );
par
int x;
scanf ("%d",&x);
Ainsi la variable x est un entier, donc tu peux directement faire tes opérations dessus.
Ton programme devient :
#include <stdio.h>
#include <stdlib.h>
main ()
{
int x;
scanf ("%d",&x);
if( 8 + 1 == x )
printf("Correct");
else
printf("InCorrect");
}
Il y a des explications sur scanf ici :
http://www.cplusplus.com/ref/cstdio/scanf.html (anglais)
http://membres.lycos.fr/dancel/c/c60_40.htm (français mais moins complet)
clintm
Messages postés
689
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
10 juin 2015
75
31 juil. 2005 à 22:58
31 juil. 2005 à 22:58
salut,
j'ai trouver la valeur de 9: je les copier/coller, mais ca marche pas
j'ai trouver la valeur de 9: je les copier/coller, mais ca marche pas
#include <stdio.h> #include <stdlib.h> main () { int x; printf("Voici le symbole de la valeur 9 : %c \n", x); x = getc( stdin ); if( 8 + 1 == x ) /*Si 8 + 11 = 9 alors afficher Correct*/ printf("Correct", x); else /*Si 8 + 11 = (autre chose que 9) alors afficher InCorrect*/ printf("InCorrect", x); getch(); }
ceddec
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
31 juil. 2005 à 23:27
31 juil. 2005 à 23:27
Je reexplique:
lorsque tu tapes 9 au clavier et que tu récupère l'information avec getc, pour le programme la valeur est 57 (la valeur décimale du code ascii correspondant au 9). Si tu tiens à utiliser getc il faut que tu enlèves 48 à la valeur saisie. Si tu tiens à voir par toi même la valeur lue, affiche là avec printf mais en utilisant %d car tu veux faire des opérations sur des entiers. Le source serait le suivant :
L'autre solution est d'utiliser scanf à la place de getc qui lui fait l'opération tout seul. Tu peux lire directement un nombre au clavier en lui passant en premier paramètre %d . Le source deviendrait
lorsque tu tapes 9 au clavier et que tu récupère l'information avec getc, pour le programme la valeur est 57 (la valeur décimale du code ascii correspondant au 9). Si tu tiens à utiliser getc il faut que tu enlèves 48 à la valeur saisie. Si tu tiens à voir par toi même la valeur lue, affiche là avec printf mais en utilisant %d car tu veux faire des opérations sur des entiers. Le source serait le suivant :
#include <stdio.h> #include <stdlib.h> main () { int x; printf("Voici le symbole de la valeur 9 : %d \n", x); x = getc( stdin ); x = x -48; if( 8 + 1 == x ) printf("Correct"); else printf("InCorrect"); }
L'autre solution est d'utiliser scanf à la place de getc qui lui fait l'opération tout seul. Tu peux lire directement un nombre au clavier en lui passant en premier paramètre %d . Le source deviendrait
#include <stdio.h> #include <stdlib.h> main () { int x; scanf ("%d",&x); if( 8 + 1 == x ) printf("Correct"); else printf("InCorrect"); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
magic charly
Messages postés
122
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
22
2 août 2005 à 08:16
2 août 2005 à 08:16
Je pense que la seconde solution est plus élégante tout de meme :)
ceddec
Messages postés
148
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
10 mars 2012
82
2 août 2005 à 10:00
2 août 2005 à 10:00
tout a fait d'accord