Probleme calculatrice en langage C
flo0263
-
flo0263 -
flo0263 -
Bonjour,
J'ai un problème je veux programmer une calculatrice en langage C a l'aide de fonctions pour les calculs. Seul problème le prog me renvoi toujours le même résultat : 2
voilà si quelqu'un pourrait m'aider ce serait sympa ^^
#include <stdio.h>
int produit(int a,int b)
{
return (a*b);
}
int addition (int c, int d)
{
return (c+d);
}
int soustraction (int e, int f)
{
return (e-f);
}
int division (int g, int h)
{
return (g/h);
}
int main()
{
int a,b, resultat, operateur;
printf("Saisir deux entiers positifs : \n");
scanf("%d", &a);
scanf("%d", &b);
printf("Saisir l'operateur : \n");
scanf("%d", &operateur);
if (operateur=='+')
{
resultat=addition(a,b);
printf("le resultat est : %d \n",resultat);
}
else if (operateur=='-')
{
resultat=soustraction(a,b);
printf("le resultat est : %d \n",resultat);
}
else if (operateur=='/')
{
resultat=division(a,b);
printf("le resultat est : %d \n",resultat);
}
else if (operateur=='*')
{
resultat=produit(a,b);
printf("le resultat est : %d \n",resultat);
}
printf("le resultat est : %d \n",resultat);
system ("PAUSE");
}
J'ai un problème je veux programmer une calculatrice en langage C a l'aide de fonctions pour les calculs. Seul problème le prog me renvoi toujours le même résultat : 2
voilà si quelqu'un pourrait m'aider ce serait sympa ^^
#include <stdio.h>
int produit(int a,int b)
{
return (a*b);
}
int addition (int c, int d)
{
return (c+d);
}
int soustraction (int e, int f)
{
return (e-f);
}
int division (int g, int h)
{
return (g/h);
}
int main()
{
int a,b, resultat, operateur;
printf("Saisir deux entiers positifs : \n");
scanf("%d", &a);
scanf("%d", &b);
printf("Saisir l'operateur : \n");
scanf("%d", &operateur);
if (operateur=='+')
{
resultat=addition(a,b);
printf("le resultat est : %d \n",resultat);
}
else if (operateur=='-')
{
resultat=soustraction(a,b);
printf("le resultat est : %d \n",resultat);
}
else if (operateur=='/')
{
resultat=division(a,b);
printf("le resultat est : %d \n",resultat);
}
else if (operateur=='*')
{
resultat=produit(a,b);
printf("le resultat est : %d \n",resultat);
}
printf("le resultat est : %d \n",resultat);
system ("PAUSE");
}
A voir également:
- Probleme calculatrice en langage C
- Langage ascii - Guide
- Calculatrice gratuit - Télécharger - Calcul & Conversion
- Langage binaire - Guide
- Installer calculatrice - Télécharger - Calcul & Conversion
- Ma-calculatrice - Télécharger - Calcul & Conversion
5 réponses
Bonsoir,
A première vue, ta variable operateur devrait plutôt être un caractère et non un entier (dans la déclaration et dans le scanf). Le dernier printf est inutile.
@+
A première vue, ta variable operateur devrait plutôt être un caractère et non un entier (dans la déclaration et dans le scanf). Le dernier printf est inutile.
@+
operateur doit etre un caractère (char).
et si vous n'etes pas trop fan du "if" comme moi utiliser switch. attention a ne pas gener le compilateur : "rectifier toutes vos scanf
bonne chance
et si vous n'etes pas trop fan du "if" comme moi utiliser switch. attention a ne pas gener le compilateur : "rectifier toutes vos scanf
bonne chance
Bonjour,
Que ta variable te renvoie 2 est une coïncidence. En fait, elle renvoie sa valeur initiale. Et comme elle n'a pas été initialisée, cela renvoie une valeur bidon.
Pour ta variable "operateur", tu vas lui rentrer des valeurs au clavier : '/', '-', '*' et '+'. Ce sont des caractères. A moins, que tu veuilles rentrer le code ascii ^^.
Donc, mets plutôt : char operateur; et surtout : scanf("%c",&operateur); ou plus simplement operateur=getchar();
Attention, il y aura un '\n' dans le buffer clavier à cause des scanf("%d",...), il faut l'enlever. Tu peux utiliser pour ceci : getchar();
Pour récapituler :
Et attention, tu affiches plusieurs fois : "le résultat est".
Sinon, en conseil : tu as mis des "else if", t'aurais dû mettre en plus un "else" (pour dire par exemple "choix incorrect". Cela t'aurait permis de voir le problème.
Cdlt,
Google is your friend
Que ta variable te renvoie 2 est une coïncidence. En fait, elle renvoie sa valeur initiale. Et comme elle n'a pas été initialisée, cela renvoie une valeur bidon.
Pour ta variable "operateur", tu vas lui rentrer des valeurs au clavier : '/', '-', '*' et '+'. Ce sont des caractères. A moins, que tu veuilles rentrer le code ascii ^^.
Donc, mets plutôt : char operateur; et surtout : scanf("%c",&operateur); ou plus simplement operateur=getchar();
Attention, il y aura un '\n' dans le buffer clavier à cause des scanf("%d",...), il faut l'enlever. Tu peux utiliser pour ceci : getchar();
Pour récapituler :
char operateur; getchar(); operateur=getchar(); /*ou scanf("%c",&operateur);*/
Et attention, tu affiches plusieurs fois : "le résultat est".
Sinon, en conseil : tu as mis des "else if", t'aurais dû mettre en plus un "else" (pour dire par exemple "choix incorrect". Cela t'aurait permis de voir le problème.
Cdlt,
Google is your friend
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question