Aide à un gros débutant.
Résolu/Fermé
Le Geek
Messages postés
19
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
26 mai 2008
-
27 janv. 2008 à 18:57
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 27 janv. 2008 à 19:42
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 27 janv. 2008 à 19:42
A voir également:
- Aide à un gros débutant.
- Logiciel de programmation pour débutant - Guide
- Formation sap débutant pdf ✓ - Forum Logiciels
- Notepad++ ajouter un caractère en début de ligne ✓ - Forum Logiciels
- Affichez l'ensemble des diapositives à l'écran avec 5 diapositives par ligne. repérez le groupe de 3 diapositives avec une fleur identique alignées verticalement, supprimez la première d'entre elles. un nouveau groupe de 3 diapositives avec une fleur identique alignées verticalement apparaît, supprimez encore la première d'entre elles. déplacez les 3 premières diapositives de la 4e ligne au début de la présentation. quel mot est formé par les lettres de la première colonne ? - Forum Powerpoint
- Logiciel montage vidéo débutant - Guide
7 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
27 janv. 2008 à 19:07
27 janv. 2008 à 19:07
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; }
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
27 janv. 2008 à 19:19
27 janv. 2008 à 19:19
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; }
Le Geek
Messages postés
19
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
26 mai 2008
2
27 janv. 2008 à 19:24
27 janv. 2008 à 19:24
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.
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
27 janv. 2008 à 19:29
27 janv. 2008 à 19:29
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
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
27 janv. 2008 à 19:31
27 janv. 2008 à 19:31
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
Le Geek
Messages postés
19
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
26 mai 2008
2
27 janv. 2008 à 19:32
27 janv. 2008 à 19:32
c'est bon, merci beaucoup sinon comment refaire une autre opération après ?
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
27 janv. 2008 à 19:42
27 janv. 2008 à 19:42
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; }