Création de calculatrice simple
Résolu
Zexen
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai crée ce qui est censé être une calculatrice simple (avec les 4 opérations de base) mais qui ne l'est pas et je comprend pas pourquoi...(je suis juste un débutant).
Voici mon code:
quand je lance le programme, il n'y a aucun problème. Mais quand je prend un des deux choix (donc 1 ou 2) le programme se casse la figure et une fenêtre disant que le compilateur a cessé de fonctionner apparaît.
Donc je cherche l’erreur et l’éventuelle correction,
merci.
j'ai crée ce qui est censé être une calculatrice simple (avec les 4 opérations de base) mais qui ne l'est pas et je comprend pas pourquoi...(je suis juste un débutant).
Voici mon code:
#include <stdio.h> #include <stdlib.h> void main() { int a,b; char operateur; int choix; do { printf("1.entrer une expression\n"); printf("2.quitter\n"); scanf("%d", choix); if(choix == 1) { scanf("%d%c%d",&a,&operateur,&b); switch(operateur) { case '+' : printf("%d + %d = %d",a,b,a+b); break; case '-' : printf("%d - %d = %d",a,b,a-b); break; case '*' : printf("%d * %d = %d",a,b,a*b); break; case '/' : if ( b == 0) { printf(" division par zero impossible\n"); } else { printf("%d / %d = %d",a,b,a/b); } break; default : printf(" operateur non accepte\n"); break; system("pause"); } } if(choix == 2) { system("cls\n"); } }while (choix != 2); }
quand je lance le programme, il n'y a aucun problème. Mais quand je prend un des deux choix (donc 1 ou 2) le programme se casse la figure et une fenêtre disant que le compilateur a cessé de fonctionner apparaît.
Donc je cherche l’erreur et l’éventuelle correction,
merci.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Création de calculatrice simple
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
- Iphone 14 simple - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
1 réponse
Salut Zexen,
En compilant ton code avec les Warnings, le compilateur, bien qu'il accepte de produire un exécutable, te signale un certain nombre de problèmes :
En C, tu dois toujours compiler avec les warnings, et il ne faut jamais les ignorer, mais, au contraire, essayer de comprendre pourquoi ils se manifestent et corriger le code pour les éliminer tous. Les warnings te signalent dans 90% des cas des erreurs, ou des choses qui vont, tôt ou tard provoquer des erreurs.
Dal
En compilant ton code avec les Warnings, le compilateur, bien qu'il accepte de produire un exécutable, te signale un certain nombre de problèmes :
$ gcc -Wall zexen.c
zexen.c:4:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
void main()
^
zexen.c: In function ‘main’:
zexen.c:14:3: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=]
scanf("%d", choix);
^
zexen.c:14:3: warning: ‘choix’ is used uninitialized in this function [-Wuninitialized]
En C, tu dois toujours compiler avec les warnings, et il ne faut jamais les ignorer, mais, au contraire, essayer de comprendre pourquoi ils se manifestent et corriger le code pour les éliminer tous. Les warnings te signalent dans 90% des cas des erreurs, ou des choses qui vont, tôt ou tard provoquer des erreurs.
Dal
Corriger ces warnings devrait éliminer la source du plantage, qui est une corruption de la mémoire.
Ce ne sont pas les seuls problèmes dans ton code, mais cela tu t'en apercevra en compilant et en testant son fonctionnement :-)