Aide à un gros débutant.
Résolu
Le Geek
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
mype Messages postés 2435 Date d'inscription Statut Membre Dernière intervention -
mype Messages postés 2435 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
alors voilà aimant l'informatique, je me suis lancé dans la programmation en language C pour commencer et je voulais m'entrainer en crééant un petit programme comme une calculatrice en console et voilà le résultat, cependant mon problème est qu'après avoir choisi le type d'opération que je voulais je n'arrive pas à accéder à celle-ci, donc je vous demande votre aide à vous les vrais programmeurs pour me dire oû ai-je commi une erreur ou un oubli.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long (operation);
printf("\tChoix de l'operation.\n\n\t");
printf("1. Addition.\n\t");
printf("2. Soustraction.\n\t");
printf("3. Multiplication.\n\t");
printf("4. Division.\n");
printf("Choisissez un type d'operation.\n\n");
scanf("%ld", operation);
switch(operation)
{
double resultat, nombre1, nombre2;
case 1:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
break;
case 2:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2;
printf("%ld - %ld = %ld\n", nombre1, nombre2, resultat);
break;
case 3:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2;
printf("%ld * %ld = %ld\n", nombre1, nombre2, resultat);
break;
case 4:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 / nombre2;
printf("%ld / %ld = %ld\n", nombre1, nombre2, resultat);
break;
default:
printf("Rechoisissez un type d'operation en tapant un chiffre correspondant (entre 1 et 4).\n");
break;
}
system("PAUSE");
return 0;
}
Ps: J'utilise comme IDE, DEV-C++.
en espérant que vous répondiez rapidement, merci.
alors voilà aimant l'informatique, je me suis lancé dans la programmation en language C pour commencer et je voulais m'entrainer en crééant un petit programme comme une calculatrice en console et voilà le résultat, cependant mon problème est qu'après avoir choisi le type d'opération que je voulais je n'arrive pas à accéder à celle-ci, donc je vous demande votre aide à vous les vrais programmeurs pour me dire oû ai-je commi une erreur ou un oubli.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long (operation);
printf("\tChoix de l'operation.\n\n\t");
printf("1. Addition.\n\t");
printf("2. Soustraction.\n\t");
printf("3. Multiplication.\n\t");
printf("4. Division.\n");
printf("Choisissez un type d'operation.\n\n");
scanf("%ld", operation);
switch(operation)
{
double resultat, nombre1, nombre2;
case 1:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
break;
case 2:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2;
printf("%ld - %ld = %ld\n", nombre1, nombre2, resultat);
break;
case 3:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2;
printf("%ld * %ld = %ld\n", nombre1, nombre2, resultat);
break;
case 4:
printf("Choisissez un nombre1.\n");
scanf("%ld", &nombre1);
printf("Choisissez un nombre2.\n");
scanf("%ld", &nombre2);
resultat = nombre1 / nombre2;
printf("%ld / %ld = %ld\n", nombre1, nombre2, resultat);
break;
default:
printf("Rechoisissez un type d'operation en tapant un chiffre correspondant (entre 1 et 4).\n");
break;
}
system("PAUSE");
return 0;
}
Ps: J'utilise comme IDE, DEV-C++.
en espérant que vous répondiez rapidement, merci.
A voir également:
- Aide à un gros débutant.
- Logiciel de programmation pour débutant - Guide
- Logiciel montage vidéo débutant - Guide
- Le fichier à télécharger contient une liste de chats. triez-la comme dans le tableau ci-dessous (attention, on ne voit que le début…). quel est le mot formé par les 8 dernières lettres de la colonne code ? - Forum Word
- Comment utiliser un ordinateur pour un débutant - Astuces et Solutions
- Apprendre le coran pour débutant (+ pdf) - Télécharger - Histoire & Religion
7 réponses
quand tu fais une déclaration de variable pas besoin de parenthèses
ensuite tu as déclaré resultat, nombre1 et nombre2 comme des double donc c'est %lf et pas %ld
et dans tes case il te manque les accolades
voici le programme corrigé (si tu n'as pas compris n'hésites pas a demander)
long operation;il te manque le & dans ton scanf pour recupere la valeur de opretation
scanf("%ld", &operation);
ensuite tu as déclaré resultat, nombre1 et nombre2 comme des double donc c'est %lf et pas %ld
et dans tes case il te manque les accolades
voici le programme corrigé (si tu n'as pas compris n'hésites pas a demander)
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { long operation; printf("\tChoix de l'operation.\n\n\t"); printf("1. Addition.\n\t"); printf("2. Soustraction.\n\t"); printf("3. Multiplication.\n\t"); printf("4. Division.\n"); printf("Choisissez un type d'operation.\n\n"); scanf("%ld", &operation); switch(operation) { double resultat, nombre1, nombre2; case 1: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 + nombre2; printf("%lf + %lf = %lf\n", nombre1, nombre2, resultat); } break; case 2: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 - nombre2; printf("%lf - %lf = %lf\n", nombre1, nombre2, resultat); } break; case 3: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 * nombre2; printf("%lf * %lf = %lf\n", nombre1, nombre2, resultat); } break; case 4: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 / nombre2; printf("%lf / %lf = %lf\n", nombre1, nombre2, resultat); } break; default: printf("Rechoisissez un type d'operation en tapant un chiffre correspondant (entre 1 et 4).\n"); break; } system("PAUSE"); return 0; }
Les arguments de scanf doivent obligatoirement des pointeurs
Donc ton scanf devient scanf ("%ld", &operation)
Tu peux par ailleurs alléger ton code de la manière suivante :
Donc ton scanf devient scanf ("%ld", &operation)
Tu peux par ailleurs alléger ton code de la manière suivante :
printf("Choisissez un nombre1.\n"); scanf("%ld", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%ld", &nombre2); switch(operation) { double resultat, nombre1, nombre2; case 1: resultat = nombre1 + nombre2; printf("%ld + %ld = %ld\n", nombre1, nombre2, resultat); break; case 2: resultat = nombre1 - nombre2; printf("%ld - %ld = %ld\n", nombre1, nombre2, resultat); break; case 3: resultat = nombre1 * nombre2; printf("%ld * %ld = %ld\n", nombre1, nombre2, resultat); break; case 4: resultat = nombre1 / nombre2 printf("%ld / %ld = %ld\n", nombre1, nombre2, resultat); break; default: printf("Rechoisissez un type d'operation en tapant un chiffre correspondant (entre 1 et 4).\n"); break; }
enfin de compte c'est bon voilà le programme marche merci
cependant, j'aimerais savoir comment recommencer une opération à la suite d'une autre ?
merci mype et dandypunk.
cependant, j'aimerais savoir comment recommencer une opération à la suite d'une autre ?
merci mype et dandypunk.
c'est toi qui a déclaré dans ton switch resultat, nombre1 et nombre2 comme des double donc des decimaux...donc c'est valable pour toutes les operations
si tu veux des decimaux que pour la division alors il faut que tu declares d'autres variable en long(entier) pour les utilisés dans les autres opérations avec des %ld
sinon le programme corrigé que je t'ai donné il fonctionne chez moi donc...je sais pas peut etre que tu as pas bien copié/collé...
si tu veux des decimaux que pour la division alors il faut que tu declares d'autres variable en long(entier) pour les utilisés dans les autres opérations avec des %ld
sinon le programme corrigé que je t'ai donné il fonctionne chez moi donc...je sais pas peut etre que tu as pas bien copié/collé...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans ta division, n'oublie pas de tester le cas ou nombre2 est nul.
Une division par 0 la machine n'aime pas
Une division par 0 la machine n'aime pas
tu peux rajouter un 5eme choix dans le menu pour quitter ainsi qu'un case 5 dans ton switch et tu fais un appel du main a la fin du switch
ça donne ça
ça donne ça
#include <stdio.h> #include <stdlib.h> int main(void) { long operation; printf("\tChoix de l'operation.\n\n\t"); printf("1. Addition.\n\t"); printf("2. Soustraction.\n\t"); printf("3. Multiplication.\n\t"); printf("4. Division.\n\t"); printf("5. Quitter.\n"); printf("Choisissez un type d'operation.\n\n"); scanf("%ld", &operation); switch(operation) { double resultat, nombre1, nombre2; case 1: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 + nombre2; printf("%lf + %lf = %lf\n", nombre1, nombre2, resultat); } break; case 2: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 - nombre2; printf("%lf - %lf = %lf\n", nombre1, nombre2, resultat); } break; case 3: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 * nombre2; printf("%lf * %lf = %lf\n", nombre1, nombre2, resultat); } break; case 4: { printf("Choisissez un nombre1.\n"); scanf("%lf", &nombre1); printf("Choisissez un nombre2.\n"); scanf("%lf", &nombre2); resultat = nombre1 / nombre2; printf("%lf / %lf = %lf\n", nombre1, nombre2, resultat); } break; case 5: exit(0); default: printf("Rechoisissez un type d'operation en tapant un chiffre correspondant (entre 1 et 4).\n"); break; } main(); system("PAUSE"); return 0; }