Calculette

Résolu
damien7258 -  
 damien7258 -
Bonjour,mon professeur ma demander de faire une mini calculatrice avec un apelle de fonction voila mon programme le compilateur me dit expression de switch non integrale mais que-ce-que cela veut dire si quelle qu'un connait la réponse merci d'avance voici mon programme.

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

double mini(char signe[], double val1, double val2);

int main(void)
{

double val1=0, val2=0, resultat=0;
char signe[5];
signe[0]='+';
signe[1]='-';
signe[2]='*';
signe[3]='/';
signe[4]='/0';
printf (" tapez + pour une addition\n tapez - pour une soustraction\n tapez * pour une multiplication\n tapez / pour diviser\n tapez 0 pour quitter\n:" );
scanf ("%c", signe);


switch (signe)
{
case '+':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat= mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
break;
case '-':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat=mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
break;
case '*':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat=mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
break;
case '/':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat=mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
default :
return 0;
}

system("PAUSE");
return 0;
}
double mini(char signe[], double val1, double val2)
{
double resultat=0;
if (signe=='+')
{
resultat=val1+val2;
return val1 + val2;
}
else if (signe=='-')
{
resultat=val1-val2;
return val1-val2;
}
else if (signe=='*')
{
resultat=val1*val2;
return val1*val2;
}
else if (signe=='/')
{
resultat=val1/val2;
return val1/val2;
}
}
A voir également:

5 réponses

mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
ta variable signe doit etre un simple caractere et pas un tableau de caractere
0
elco Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonsoir damien7258,

déjà il te manque un } à la fin de ton pgr tout comme en d'autres endroits; essaies donc cela




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

double mini(char signe[], double val1, double val2);

int main(void)
{

double val1=0, val2=0, resultat=0;
char signe[5];
signe[0]='+';
signe[1]='-';
signe[2]='*';
signe[3]='/';
signe[4]='/0';
printf (" tapez + pour une addition\n tapez - pour une soustraction\n tapez * pour une multiplication\n tapez / pour diviser\n tapez 0 pour quitter\n:" );
scanf ("%c", signe);

}

switch (signe)
{
case '+':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat= mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
break;
case '-':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat=mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
break;
case '*':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat=mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
break;
case '/':printf("Entrer val1 et val2\n:");
scanf("%lf", &val1);
scanf("%lf", &val2);
resultat=mini(signe,val1,val2);
printf("resultat : %.2lf\n",resultat);
default :
return 0;
}

{
system("PAUSE");
return 0;
}
double mini(char signe[], double val1, double val2)
{
double resultat=0;
if (signe=='+')
{
resultat=val1+val2;
return val1+val2;
}
else if (signe=='-')
{
resultat=val1-val2;
return val1-val2;
}
else if (signe=='*')
{
resultat=val1*val2;
return val1*val2;
}
else if (signe=='/')
{
resultat=val1/val2;
return val1/val2;
}
}
}



@+
elco
0
damien7258
 
merci beaucoup mon programme fonctionne
0
elco Messages postés 124 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour,
je suis trés content pour toi et ton prof sera surement trés fier aussi.
Ta logique étant cohérente, il est tt à fait normal que le respect de la syntaxe conduise au succès.
A ce propoos, ce serait bien si, dans un dernier msg que tu m'adresserais, tu cochais la case RESOLU... çà aide toutes les personnes qui comme toi, souhaitent avoir une réponse correcte et rapide à leur pb. Ainsi chacun peut, avant même de poster leur pb, savoir s'il n'a pas déjà été traité etRESOLU.
Merci de le faire et ce sera avec plaisir que l'on se penchera sur les pb de damien7258.
@+
elco
0

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

Posez votre question
damien7258
 
Je suis désolé je ne le savait pas je vais le faire tout de suite et encore merci.
0