Erreur programme C, code blocks
Résolu
flo_rock_69
-
flo_rock_69 -
flo_rock_69 -
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.
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:
- Erreur programme C, code blocks
- Code blocks - Télécharger - Langages
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
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:
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;
}}
Sinon pour la declaration des variables tu peux faire sa:
int nb1 = 0, nb2 = 0, resultat = 0;