Problème en langage C
fahim0788
Messages postés
111
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j -
lami20j -
Bonjours, ce programme ressemble à une petite calculette, on saisit un opérateur et deux entiers et il retourne le résultat de l'opération correspondante et cela tanque l'utilisateur répond par une touche déffirente de 'Q' qui signifie <Quitter>, le problème est que malgré la saisie du 'Q' le programme redemande de saisir un opérateur et deux entiers si quelqu'un voit pourquoi merci d'avance de m'avoir informer,
#include <stdio.h> #include <stdlib.h> char lireCaractere() { char caractere='q'; caractere = getchar(); while (getchar() != '\n'); return caractere; } void main() { char op,r='0'; int x,y; while(r!='Q'){ printf("\n Introduisez un operateur: "); op=lireCaractere(); printf(" \n x = "); scanf("%d",&x); printf("\n y = "); scanf("%d",&y); switch(op){ case '+':printf("\n %d + %d = %d ",x,y,x+y);break; case '-':printf("\n %d - %d = %d ",x,y,x-y);break; case '*':printf("\n %d * %d = %d ",x,y,x*y);break; case '/':printf("\n %d / %d = %d ",x,y,x/y);break; case '%':printf("\n %d mod %d = %d ",x,y,x%y);break; default :printf("\n Introduisez un operateur correct!"); } printf("\n Appuyer sur Q pour quitter ou autre touche pour continuer: "); r=lireCaractere(); } }
A voir également:
- Problème en langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
2 réponses
mince je m'en rappelle plus du langage C Y_Y
mais bon si tu veuw avoir une reponse a coup sur va sur www.siteduzero.com et poste sur le forum
P.S: n'oublie pas de t'inscrire (gratuit et rapide)
mais bon si tu veuw avoir une reponse a coup sur va sur www.siteduzero.com et poste sur le forum
P.S: n'oublie pas de t'inscrire (gratuit et rapide)
Salut,
La fonction lireCaractere n'est pas vraiment nécessaire vu que tu peux utiliser directement getchar()
Je pense aussi que le message de la clause default: apparaît trop tard (c'est-à-dire après avoir saisi x et y).
Tant qu'on a taper autre chose qu'une opération prevue, autant afficher le message toute de suite que l'opérateur n'est pas bon.
Tu peux penser à rémedier ça.
N'oublie pas de gérer aussi la division avec zéro.
La fonction lireCaractere n'est pas vraiment nécessaire vu que tu peux utiliser directement getchar()
Je pense aussi que le message de la clause default: apparaît trop tard (c'est-à-dire après avoir saisi x et y).
Tant qu'on a taper autre chose qu'une opération prevue, autant afficher le message toute de suite que l'opérateur n'est pas bon.
Tu peux penser à rémedier ça.
N'oublie pas de gérer aussi la division avec zéro.
#include <stdio.h> #include <stdlib.h> char lireCaractere() { return getchar(); } int main() { char op,r='0'; int x,y; while(r!='Q'){ printf("\n Introduisez un operateur: "); op=lireCaractere(); printf(" \n x = "); scanf("%d",&x); printf("\n y = "); scanf("%d",&y); switch(op){ case '+': printf("\n %d + %d = %d ",x,y,x+y); break; case '-': printf("\n %d - %d = %d ",x,y,x-y); break; case '*': printf("\n %d * %d = %d ",x,y,x*y); break; case '/': printf("\n %d / %d = %d ",x,y,x/y); break; case '%': printf("\n %d mod %d = %d ",x,y,x%y); break; default : printf("\n Introduisez un operateur correct!"); break; } printf("\n Appuyer sur Q pour quitter ou autre touche pour continuer: "); while (getchar() != '\n'); r=getchar(); } return EXIT_SUCCESS; }