Code C calculette

Résolu
guiguicod -  
 guiguicod -
Bonjour,
petit souci avec ce code tout mes resultat sont egaux a 0! aidez moi svp ^^

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

int main(int argc, char *argv[])
{
long resultat = 0 , nombre1 = 0 , nombre2 = 0 , choixMenu;
printf("=== Menu ===\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("\nVotre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");

switch (choixMenu)
{
case 1:
printf("Vous avez choisi l'Addition .Entrez un nombre : \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
printf("\n\n%ld+%ld=%ld\n" , nombre1 , nombre2 , resultat);
resultat = nombre1 + nombre2;
break;

case 2:
printf("Vous avez choisi la Soustraction .Entrez un nombre : \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
printf("\n\n%ld-%ld=%ld\n" , nombre1 , nombre2 , resultat);
resultat = nombre1 - nombre2;
break;

case 3:
printf("Vous avez choisi la Multiplication. Entrez un nombre : \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
printf("\n\n%ld*%ld=%ld\n" , nombre1 , nombre2 , resultat);
resultat = nombre1 * nombre2;
break;

case 4:
printf("Vous avez choisi La Division. Entrez un nombre : \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
printf("\n\n%ld/%ld=%ld\n" , nombre1 , nombre2 , resultat);
resultat = nombre1 / nombre2;
break;

default:
printf("Vous n'avez pas rentre un nombre correct!\n");
break;
}

system("PAUSE");
return 0;

}

21 réponses

mype Messages postés 2449 Statut Membre 437
 
c'est ça que tu veux ?

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

void prog()
{
long resultat = 0 , nombre1 = 0 , nombre2 = 0 , choixMenu;
double d_resultat = 0.0 , d_nombre1 = 0.0 , d_nombre2 = 0.0;

printf("\nVotre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");

switch (choixMenu)
{
case 1:
printf("Vous avez choisi l'Addition .\n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\n%ld+%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 2:
printf("Vous avez choisi la Soustraction . \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2;
printf("\n\n%ld-%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 3:
printf("Vous avez choisi la Multiplication.  \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2;
printf("\n\n%ld*%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 4:
printf("Vous avez choisi La Division. \n");
printf("Entrez le nombre 1 : ");
scanf("%lf", &d_nombre1);
printf("Entrez le nombre 2 : ");
scanf("%lf", &d_nombre2);
d_resultat = d_nombre1 / d_nombre2;
printf("\n\n%.2lf/%.2lf=%.2lf\n" , d_nombre1 , d_nombre2 , d_resultat);

break;

case 5:
exit(-1);

break;

default:
printf("Vous n'avez pas rentre un nombre correct!\n");

break;
}
prog();
}

int main(void)
{
printf("=== Menu ===\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("5. Sortie\n");

prog();
system("PAUSE");
return 0;
}
3
guiguicod
 
j'ai oublier je voudrais revenir au debut a la fin de chaques calculs merci
0
mype Messages postés 2449 Statut Membre 437
 
il fallait mettre les calcul avant les printf c'est pour sa que tu avais tous le tps 0

pour revenir a la presentation du menu a la fin de chaque calcul il faut appeler la fonction main a la fin et tu rajoute un menu sortie pour quitter le programme

voici ton programme un peu modifié :


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

int main(void)
{
long resultat = 0 , nombre1 = 0 , nombre2 = 0 , choixMenu;

printf("=== Menu ===\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("5. Sortie\n");
printf("\nVotre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");

switch (choixMenu)
{
case 1:
printf("Vous avez choisi l'Addition . \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\n%ld+%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 2:
printf("Vous avez choisi la Soustraction  \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2;
printf("\n\n%ld-%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 3:
printf("Vous avez choisi la Multiplication. \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2;
printf("\n\n%ld*%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 4:
printf("Vous avez choisi La Division. \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 / nombre2;
printf("\n\n%ld/%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 5:
exit(-1);

break;

default:
printf("Vous n'avez pas rentre un nombre correct!\n");

break;
}
main();
system("PAUSE");
return 0;
}
0
guiguicod
 
Cool merci beaucoup mais je comprend pas pour metre la division sous forme decimal il faut que je declare les variantes differemment des autres servant aux calculs + - *?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mype Messages postés 2449 Statut Membre 437
 
pour avoir les resultats de la division sous forme decimal il faut declarer d'autre variable en tant que reel et non entier

voila ce que ça donne :

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

int main(void)
{
long resultat = 0 , nombre1 = 0 , nombre2 = 0 , choixMenu;
double d_resultat = 0.0 , d_nombre1 = 0.0 , d_nombre2 = 0.0;

printf("=== Menu ===\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
printf("5. Sortie\n");
printf("\nVotre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");

switch (choixMenu)
{
case 1:
printf("Vous avez choisi l'Addition .\n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\n%ld+%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 2:
printf("Vous avez choisi la Soustraction . \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2;
printf("\n\n%ld-%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 3:
printf("Vous avez choisi la Multiplication.  \n");
printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2;
printf("\n\n%ld*%ld=%ld\n" , nombre1 , nombre2 , resultat);

break;

case 4:
printf("Vous avez choisi La Division. \n");
printf("Entrez le nombre 1 : ");
scanf("%lf", &d_nombre1);
printf("Entrez le nombre 2 : ");
scanf("%lf", &d_nombre2);
d_resultat = d_nombre1 / d_nombre2;
printf("\n\n%.2lf/%.2lf=%.2lf\n" , d_nombre1 , d_nombre2 , d_resultat);

break;

case 5:
exit(-1);

break;

default:
printf("Vous n'avez pas rentre un nombre correct!\n");

break;
}
main();
system("PAUSE");
return 0;
}
0
guiguicod
 
merci beaucoup pour ton aide j'ai une derniere question pourquoi tu met %.2lf ainsi que exit(-1);
0
mype Messages postés 2449 Statut Membre 437
 
comme pour un long(entier) on met %ld pour un double(reel) on met %lf et .2 c'est pour dire combien de chiffre apres la virgule d'ou %.2lf

exit(-1) sa sert a sortir du programme tout simplement
0
guiguicod
 
okok et est il possible a chaque fin de calculs revenir au debut en effacant tout ce qui a deja ete ecrit?
0
mype Messages postés 2449 Statut Membre 437
 
si tu fais ça tu n'auras pas le temps de lire le resultat du calcul puisque ça va effacer le terminal...
0
guiguicod
 
okok mais c'est penible car a chaque fin de calcul on revois le menu et sa gache tout
ou sinon pas effacer mais revenir a la ligne comme au demarage du programme quoi
0
mype Messages postés 2449 Statut Membre 437
 
en faite tu veux pouvoir faire d'autre calcul mais sans reafficher le menu c'est bien ça ?
0
guiguicod
 
si mais en ne voyant plus les autres refaire comme quant on lance le programme au debut mais j'ai essayer plusieurs \n et sa ne fonctionne pas non plus
0
guiguicod
 
c'est a peux pres sa sauf qu'au lieu de metre juste votre choix je voudrais metre tout le menu au debu d'une nouvelle page
sinon ce que tu ma fait montrer c'est pas mal ^^ j'aime bien
0
mype Messages postés 2449 Statut Membre 437
 
en faite tu veux revenir comme au tout debut du programme ça je pense que c'est pas possible a moins de quitter puis redemarrer le programme...
0
guiguicod
 
okok en tout cas merci pour ton aide ^^
0
mype Messages postés 2449 Statut Membre 437
 
de rien ;)
0
guiguicod
 
c'est bon j'ai reussis voila mon code mais il y a juste un probleme je peux pas calculer de grand nombres :

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

int main(void)
{
long resultat = 0 , nombre1 = 0 , nombre2 = 0 , choixMenu;
double d_resultat = 0.0 , d_nombre1 = 0.0 , d_nombre2 = 0.0;

printf(" =======CALCULETTE BY T4rlouZ'=========\n\n\n\n *************************************************\n\n");
printf(" 1. Addition\n\n");
printf(" 2. Soustraction\n\n");
printf(" 3. Multiplication\n\n");
printf(" 4. Division\n\n");
printf(" 5. Sortie\n\n");
printf("\n Votre choix ? ");
scanf("%ld", &choixMenu);
printf("\n");

switch (choixMenu)
{
case 1:
system("CLS");
printf(" Vous avez choisi l'Addition .\n\n\n");
printf(" Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf(" Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2;
printf("\n\n%ld+%ld= %ld\n\n\n\n\n" , nombre1 , nombre2 , resultat);
break;

case 2:
system("CLS");
printf(" Vous avez choisi la Soustraction . \n\n\n");
printf(" Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf(" Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2;
printf("\n\n%ld-%ld= %ld\n\n\n\n\n" , nombre1 , nombre2 , resultat);
break;

case 3:
system("CLS");
printf(" Vous avez choisi la Multiplication. \n\n\n");
printf(" Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf(" Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2;
printf("\n\n%ld*%ld= %ld\n\n\n\n\n" , nombre1 , nombre2 , resultat);
break;

case 4:
system("CLS");
printf(" Vous avez choisi La Division. \n\n\n");
printf(" Entrez le nombre 1 : ");
scanf("%lf", &d_nombre1);
printf(" Entrez le nombre 2 : ");
scanf("%lf", &d_nombre2);
d_resultat = d_nombre1 / d_nombre2;
printf("\n\n%.2lf/%.2lf= %.2lf\n\n\n\n\n" , d_nombre1 , d_nombre2 , d_resultat);
break;

case 5:
exit(-1);

break;

default:
printf(" Vous n'avez pas rentre un nombre correct!\n\n\n\n\n");

break;

}
main();
system("PAUSE");
return 0;
}
0
mype Messages postés 2449 Statut Membre 437
 
tu veux dire quoi par grand nombres ?
0
guiguicod
 
et bien 1111111111+1111111111=-2072745074 -_-'
0
mype Messages postés 2449 Statut Membre 437
 
avec un long tu peux aller de -2 147 483 647 jusqu'a 2 147 483 647 donc faut que le resultat ce trouve entre les deux ;)
0