Projet calculatrice

Résolu/Fermé
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 - 13 juin 2016 à 17:05
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 - 14 juin 2016 à 09:13
Bonjour,
J'ai besoin de votre aide s'il vous plait.
Lorsque j'essaie d'executer ce programme, il m'affiche ce message d'erreur : " Erreur, choix non disponible !!! "



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

#define TAILLEMAX 1000

int demanderMenu()
{
int userChoice;
printf("Quelle operation voulez-vous effectuer ?\n");
printf("1. Addition\n2. Multiplication\n3. Division\n4. Modulo\n");
do
{
printf("Votre choix ? ");
scanf("%d", &userChoice);
}while(userChoice < 1 || userChoice > 4);

return userChoice;
}

double addition(double tableau[], int tailleTab)
{
int i;
double somme = 0;

for(i = 0; i < tailleTab; i++)
somme += tableau[i];

return somme;
}

double multiplication(double tableau[], int tailleTab)
{
int i = 0;
double produit = 1;

for(i = 0; i < tailleTab; i++)
produit *= tableau[i];

return produit;

}

int demanderNombresAddition()
{
int i, tailleTab = 0;
double tableau[TAILLEMAX] = {};

printf("Combien de nombre voulez-vous utiliser ? ");
scanf("%d", &tailleTab);

for(i = 0; i < tailleTab; i++)
{
printf("Entrez le nombre N* %d ? ", i);
scanf("%lf", &tableau[i]);
}

addition(tableau, tailleTab);
printf("\n");
printf("La somme de ces %d nombres est de %.2lf\n", i, addition(tableau, tailleTab));

return tailleTab;
}

int demanderNombresMultiplication()
{
int i = 0, tailleTab = 0;
double tableau[TAILLEMAX] = {};

printf("Combien de nombres voulez-vous utiliser ? ");
scanf("%d", &tailleTab);

for(i = 0; i < tailleTab; i++)
{
printf("Entrez le nombre N* %d ? ", i);
scanf("%lf", &tableau[i]);
}

multiplication(tableau, tailleTab);
printf("\n");
printf("Le produit de ces %d nombres est de %.2lf\n", i, multiplication(tableau, tailleTab));

return tailleTab;
}

double division(double nombre1, double nombre2)
{
return nombre1 / nombre2;
}

int demanderNombresDivision()
{
int i = 0;
double nombre1 = 0, nombre2 = 1;

if(nombre2 != 0)
{
printf("Entrez un nombre ");
scanf("%lf", &nombre1);

printf("Entrez un autre nombre ");
scanf("%lf", &nombre2);

division(nombre1, nombre2);
printf("\n");
printf("Le resultat de la division de %.2lf par %.2lf est de %.2lf\n", nombre1, nombre2, division(nombre1, nombre2));

}else if(nombre2 == 0)
{
printf("Erreur, division par 0 !!! \n\n\n");
exit(0);
}

return 1;
}

int modulo(int nombre1, int nombre2)
{
return nombre1 % nombre2;
}

int demanderNombresModulo()
{
int i = 0;
int nombre1 = 0, nombre2 = 0;

printf("Entrez un nombre ");
scanf("%d", &nombre1);

printf("Entrez un autre nombre ");
scanf("%d", &nombre2);


modulo(nombre1, nombre2);
printf("\n");
printf("Le reste de la division de %d par %d est de %d\n", nombre1, nombre2, modulo(nombre1, nombre2));

return 1;
}


int main()
{
int userChoice = 0;

demanderMenu();

switch(userChoice)
{
case 1:
printf("Vous avez choisi l'Addition !\n");
demanderNombresAddition();
break;

case 2:
printf("Vous avez choisi la Multiplication !\n");
demanderNombresMultiplication();
break;

case 3:
printf("Vous avez choisi la Division !\n");
demanderNombresDivision();
break;

case 4:
printf("Vous avez choisi le Modulo !\n");
demanderNombresModulo();
break;

default :
printf("Erreur, choix non disponible !!! ");
break;
}


return 0;
}





A voir également:

1 réponse

La fonction demanderMenu crée une nouvelle variable "userChoice", ce n'est pas la même variable avant ton switch().

https://www.commentcamarche.net/contents/122-langage-c-les-variables#portee-visibilite-des-variables

Du coup ton userChoice vaut toujours 0, et tu as le message d'erreur .

Remplace :


int userChoice = 0;    
demanderMenu();


par

int userChoice = demanderMenu();


dans ton main()
0
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017
14 juin 2016 à 09:13
Bonjour,
Grand merci, ça marche comme sur des roulettes !!!
0