printf("veuillez saisir un nombre: \n");
fflush(stdin);
scanf("%f",&x);
printf("veuillez saisir un deuxieme nombre: \n");
fflush(stdin);
scanf("%f",&y);
printf("veuillez saisir le signe mathematique que vous voulez realiser avec ses nombres\n");
fflush(stdin);
scanf("%c",&z);
switch(z)
{
case '+':
printf("Vous acez decider d'aditionner %f + %f\n\n\n",x,y);
printf("Le resultat de %f + %f = %f ",x,y,x+y);
break;
case '-':
printf("Vous acez decider de soustraire %f - %f\n\n\n",x,y);
printf("Le resultat de %f - %f = %f ",x,y,x-y);
break;
case '*':
printf("Vous acez decider de multiplier %f * %f\n\n\n",x,y);
printf("Le resultat de %f * %f = %f ",x,y,x*y);
break;
case '/':
if ((y!=0)&&(x!=0))
{
printf("Vous acez decider de multiplier %f / %f\n\n\n",x,y);
printf("Le resultat de %f / %f = %f ",x,y,x/y);
break;
case 'cos':
break;
case 'sin':
break;
case 'tan':
break;
case 'ans':
break;
}
else
{
printf("WARNING OPERATION IMPOSSIBLE\n");
break;
}
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 27 nov. 2005 à 14:02
c contient 1 caractères, or pour coder cos, il en faut 4
Comme tu es débutant, tu devais utiliser strcmp.
Au lieu de char c, tu déclares char operation[4];
puis fgets(c, 4, stdin); pour le lire.
switch(operation[0])
{
case '+':
...
case '-':
...
default:
if(!strcmp(operation, "cos")) // c'est cosinus
else if(!strcmp(operation, "sin")) // sinus
...
}
Sinon, comme tes chaines ne font que 4 caractères, tu peux optimiser cela:
int operation;
fgets((char*)&operation, 4, stdin);
switch(operation)
{
case '+':
...
case 'soc': cosinus
...
case 'nis': //sinus
...
}
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 27 nov. 2005 à 14:11
J'ai juste donné une deuxième possibilité, mais la première je crois que c'est la plus simple
Apparemment ca ne te choque pas qu'on lise un seul char pour entre "cos"