Après un scanf, rien ne se passe!
Résolu/Fermé
A voir également:
- Après un scanf, rien ne se passe!
- Mettre un mot de passe sur un dossier - Guide
- Voir mot de passe wifi android - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe administrateur - Guide
- Identifiant et mot de passe - Guide
6 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
10 mars 2009 à 22:36
10 mars 2009 à 22:36
poste ton code ça sera plus simple de t'aider
Voici le programme, il s'agit d'une calculatrice mais pour l'instant, il n'y à que l'addition :
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, rien = 0;
printf("Quel operation?\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
scanf("%ld\n\n", &operation); // Ici j'entre le chiffre 1 et appuie sur ENTER mais je dois réentrer un chiffre et réappuyer sur ENTER pour continuer
if (operation == 1)
{
printf("Quels chiffre voulez-vous additionner?\n ");
scanf("%ld", &nombre1); // Pour ce chiffre, la machine utilise le chiffre que j'ai dû entrer avent pour pouvoir continuer
scanf("%ld\n\n", &nombre2); // Ici tout se passe normalement
resultat = nombre1 + nombre2;
printf("%ld + %ld = %ld", nombre1, nombre2, resultat);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, rien = 0;
printf("Quel operation?\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
scanf("%ld\n\n", &operation); // Ici j'entre le chiffre 1 et appuie sur ENTER mais je dois réentrer un chiffre et réappuyer sur ENTER pour continuer
if (operation == 1)
{
printf("Quels chiffre voulez-vous additionner?\n ");
scanf("%ld", &nombre1); // Pour ce chiffre, la machine utilise le chiffre que j'ai dû entrer avent pour pouvoir continuer
scanf("%ld\n\n", &nombre2); // Ici tout se passe normalement
resultat = nombre1 + nombre2;
printf("%ld + %ld = %ld", nombre1, nombre2, resultat);
}
return 0;
}
halloran
Messages postés
45
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
12 mars 2009
11 mars 2009 à 18:58
11 mars 2009 à 18:58
salut,
tu devrait commencer ton programme de cette facon (évident chacun peut programmer comme cela lui plait)
mais l'utilisation du switch rends ton programme plus propre, et evitera d'éventuelles erreures.
#include <stdio.h>
#include <stdlib.h>
//******************************************************************//
//****************** définition des variables *******************************//
//******************************************************************//
int choix;
long nbr1, nbr2, resultat;
//**********************************************************************//
//********************** programme principale *******************************//
//**********************************************************************//
int main(int argc, char *argv[])
{
printf("=========== ma premiere calculette =============\n\n");
printf("1. adition\n");
printf("2. soustraction\n");
printf("3. division\n");
printf("4. multiplication\n\n");
printf("donner le numero correspondant a l operation souhaitee\n");
scanf("%d",&choix);
switch (choix)
{
case 1:
printf("vous avez choisit d executer une adition \n");
break;
case 2:
printf("vous avez choisit d executer une soustraction \n");
break;
case 3:
printf("vous avez choisit d executer une division \n");
break;
case 4:
printf("vous avez choisit d executer une multiplication \n");
break;
default:
printf("mauvais choix \n");
break;
}
pour le choix de l'opération un simple if suffit
/* if choix == 1) // on choisit l'adition
tu demande tes chiffres , tu calcul et tu affiche le résultat
*/
essaie et tien nous au courant
a+
romain m.
tu devrait commencer ton programme de cette facon (évident chacun peut programmer comme cela lui plait)
mais l'utilisation du switch rends ton programme plus propre, et evitera d'éventuelles erreures.
#include <stdio.h>
#include <stdlib.h>
//******************************************************************//
//****************** définition des variables *******************************//
//******************************************************************//
int choix;
long nbr1, nbr2, resultat;
//**********************************************************************//
//********************** programme principale *******************************//
//**********************************************************************//
int main(int argc, char *argv[])
{
printf("=========== ma premiere calculette =============\n\n");
printf("1. adition\n");
printf("2. soustraction\n");
printf("3. division\n");
printf("4. multiplication\n\n");
printf("donner le numero correspondant a l operation souhaitee\n");
scanf("%d",&choix);
switch (choix)
{
case 1:
printf("vous avez choisit d executer une adition \n");
break;
case 2:
printf("vous avez choisit d executer une soustraction \n");
break;
case 3:
printf("vous avez choisit d executer une division \n");
break;
case 4:
printf("vous avez choisit d executer une multiplication \n");
break;
default:
printf("mauvais choix \n");
break;
}
pour le choix de l'opération un simple if suffit
/* if choix == 1) // on choisit l'adition
tu demande tes chiffres , tu calcul et tu affiche le résultat
*/
essaie et tien nous au courant
a+
romain m.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
halloran
Messages postés
45
Date d'inscription
lundi 24 septembre 2007
Statut
Membre
Dernière intervention
12 mars 2009
11 mars 2009 à 19:11
11 mars 2009 à 19:11
Les variables globales ont plusieurs inconvénients.
Il est donc conseillé de définir des variables locales et de les envoyer en arguments pour les récupérer dans d'autres fonctions si besoin il y a.
Il est donc conseillé de définir des variables locales et de les envoyer en arguments pour les récupérer dans d'autres fonctions si besoin il y a.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
11 mars 2009 à 19:13
11 mars 2009 à 19:13
scanf("%ld\n\n", &operation);
Le problème vient d'une mauvaise utilisation du scanf. Il ne faut pas mettre de '\n'.
Utilise donc plutôt :
De même pour
Cdlt
Le problème vient d'une mauvaise utilisation du scanf. Il ne faut pas mettre de '\n'.
Utilise donc plutôt :
scanf("%ld", &operation);
De même pour
scanf("%ld", &nombre2);
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Donc voilà j'ai fais comme vous m'avez dis(pas \n après scanf, meilleure utilisation du switch ect...), mais là, j'ai un problème : quand je fais mon addition, j'écris les deux chiffres à additionner, mais au moment de faire le calcule il me sort quelque chose du genre " 3224455 + 5365346 = 85483875" alors que j'avais demandé quelque chose comme 24 + 15!
Donc je vous mets mon programme, avec un meilleur interface :
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, choix = 0;
printf("============Bienvenue dans ma calculatrice============\n\n\n");
printf("Voici les operations a choix : \n\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
printf("Tapez le chiffre correspondant et pressez ENTER : ");
scanf("%ld", &choix);
switch (choix)
{
case 1:
printf("\n\n\nVous avez choisi l'addition.\n\n");
break;
case 2:
printf("\n\n\nVous avez choisi la soustraction.\n\n");
break;
case 3:
printf("\n\n\nVous avez choisi la multiplication.\n\n");
break;
case 4:
printf("\n\n\nVous avez choisi la division.\n\n");
}
if (choix == 1)
{
printf("Choisissez le premier nombre a additionner : ");
scanf("%ld", &nombre1);
printf("Choisissez le deuxieme nombre a additionner : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\nVoici le calcule : %ld + %ld = %ld", &nombre1, &nombre2, &resultat);
}
return 0;
}
Donc je vous mets mon programme, avec un meilleur interface :
#include <stdio.h>
#include <stdlib.h>
int main()
{
long nombre1 = 0, nombre2 = 0, operation = 0, resultat = 0, choix = 0;
printf("============Bienvenue dans ma calculatrice============\n\n\n");
printf("Voici les operations a choix : \n\n\n");
printf("1. Addition\n\n");
printf("2. Soustraction\n\n");
printf("3. Multiplication\n\n");
printf("4. Division\n\n");
printf("Tapez le chiffre correspondant et pressez ENTER : ");
scanf("%ld", &choix);
switch (choix)
{
case 1:
printf("\n\n\nVous avez choisi l'addition.\n\n");
break;
case 2:
printf("\n\n\nVous avez choisi la soustraction.\n\n");
break;
case 3:
printf("\n\n\nVous avez choisi la multiplication.\n\n");
break;
case 4:
printf("\n\n\nVous avez choisi la division.\n\n");
}
if (choix == 1)
{
printf("Choisissez le premier nombre a additionner : ");
scanf("%ld", &nombre1);
printf("Choisissez le deuxieme nombre a additionner : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\nVoici le calcule : %ld + %ld = %ld", &nombre1, &nombre2, &resultat);
}
return 0;
}