Erreur programme C, code blocks

Résolu/Fermé
flo_rock_69 - 17 déc. 2011 à 19:42
 flo_rock_69 - 17 déc. 2011 à 23:00
Bonjour,
alors voila, j'ai un petit soucis:

j'apprend en ce moment a programmer en C, avec Code::Blocks, et j'ai voulu m'amuser a creer une mini calculatrice.
Voici mon code:



#include <stdio.h>
#include <stdlib.h>

int main()
{
int resultat=0;
int nombre1=0;
int nombre2=0;
int OperationChoisie=0;
int quitter=0; //j'ai mis quitter, pour que la console ne ferme pas automatiquement lorsqu'on l'ouvre en .exe

{



printf("entrez le nombre1 \n\n");
scanf("%d",&nombre1);

printf("entrez le nombre2 \n\n");
scanf("%d", &nombre2);

printf("choisissez l'operation a effectuer: \n\n");
printf("1. Addition\n 2. Soustraction\n 3. Multiplication\n 4. Division\n\n");
scanf("%d", &OperationChoisie);

if(OperationChoisie>4)
{
printf("veuillez entrez une des operations citees, soit un chiffre de 1 a 4\n\n");
}

else if(OperationChoisie=1)
{
resultat=nombre1+nombre2;
printf("Le resultat de l'addition des nombres %d et %d est egal a %d", nombre1, nombre2, resultat);

printf("\n appuyez sur 5 pour quitter");
scanf("%d",&quitter);
}

else if(OperationChoisie=2)
{
resultat=nombre1-nombre2;
printf("La soustraction %d - %d a pour resultat %d", nombre1, nombre2, resultat);

printf("\n appuyez sur 5 pour quitter.");
scanf("%d",&quitter);
}

else if(OperationChoisie=3)
{
resultat=nombre1/nombre2;
printf("La division de %d par %d a pour resultat %d", nombre1, nombre2, resultat);

printf("\n appuyez sur 5 pour quitter");
scanf("%d",&quitter);
}

else if(OperationChoisie=4)
{
resultat=nombre1*nombre2;
printf("Le resultat de la multiplication de %d par %d est egale a %d", nombre1, nombre2, resultat);

}
return 0;



}}









Alors voila, donc mon soucis c'est que quand je lance le programme, je rentre nombre1, puis nombre2, ensuite si je met un chiffre superieur a 4, il me dit comme quoi une erreur(jusque la tout va bien), seulement une fois que je choisis l'operation a effectuer, que je tape 1,2,3 ou 4, il fait toujours une addition !

Je ne comprends vraiment pas, merci de m'aider.




A voir également:

1 réponse

Salut, deja pour l'option quittez met system("pause");

Sa demandera d'appuyer sur une touche quelquonque pour continuer.

Sinon ton code marche pas car a chaque fois tu as mis OperationChoisit = chiffre sauf qu'il faut mettre OperationChoisit == chiffre

1 seul egal sa fais une afectation donc en gros dés la 2 eme ligne quel que soit l'operation il lui met 1 car tu as mis un seul egal et vu que un if avec un chiffre positif est toujours vrai il execute que le premier elseif

Voila ton code refais:

#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
int resultat=0; 
int nombre1=0; 
int nombre2=0; 
int OperationChoisie=0; 

{ 



printf("entrez le nombre1 \n\n"); 
scanf("%d",&nombre1); 

printf("entrez le nombre2 \n\n"); 
scanf("%d", &nombre2); 

printf("choisissez l'operation a effectuer: \n\n"); 
printf("1. Addition\n 2. Soustraction\n 3. Multiplication\n 4. Division\n\n"); 
scanf("%d", &OperationChoisie); 

if(OperationChoisie>4) 
{ 
printf("veuillez entrez une des operations citees, soit un chiffre de 1 a 4\n\n"); 
} 

else if(OperationChoisie==1) 
{ 
resultat=nombre1+nombre2; 
printf("Le resultat de l'addition des nombres %d et %d est egal a %d", nombre1, nombre2, resultat); 

} 

else if(OperationChoisie==2) 
{ 
resultat=nombre1-nombre2; 
printf("La soustraction %d - %d a pour resultat %d", nombre1, nombre2, resultat); 

} 

else if(OperationChoisie==3) 
{ 
resultat=nombre1/nombre2; 
printf("La division de %d par %d a pour resultat %d", nombre1, nombre2, resultat); 

} 

else if(OperationChoisie==4) 
{ 
resultat=nombre1*nombre2; 
printf("Le resultat de la multiplication de %d par %d est egale a %d", nombre1, nombre2, resultat); 

} 

system("pause");
return 0; 



}} 
-1
Utilisateur anonyme
17 déc. 2011 à 19:52
Aprés ce que tu peux faire c'est mettre un while pour refaire l'operation tant que l'on appuie pas sur 5. et mettre des sous fonctions pour eclaircir tout sa. Aprés il faut apprendre un peux plus.

Sinon pour la declaration des variables tu peux faire sa:

int nb1 = 0, nb2 = 0, resultat = 0;
0
Merci beaucoup! ca faisait un moment que je cherchais, et merci aussi pour les 2 autres petites astuces que tu m'a donné ;)
0