Pabloferreira Postado Abril 25, 2016 Denunciar Share Postado Abril 25, 2016 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { float a,b,res; char op; printf ("Calculadora\n"); printf ("Digite <operando><+-*/><operando>: "); scanf ("%f%c%f",&a,&op,&b); if (op == '+') res = a+b; else if (op == '-') res = a-b; else if (op == '*') res = a*b; else if (op == '/') res = a/b; else { printf ("Operação inválida (%c) entre os operandos %.2f e %.2f\n", op, a, b); system("PAUSE"); return 0; } printf ("%.2f %c %.2f = %.2f\n", a, op, b, res); system("PAUSE"); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JeanR Postado Abril 26, 2016 Denunciar Share Postado Abril 26, 2016 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { float a,b,res; char op; printf ("Calculadora\n"); printf ("Digite <operando><+-*/><operando>: "); scanf ("%f%s%f",&a,&op,&b); switch(op){ case '+': res = a+b; break; case '-': res = a-b; break; case '*': res = a*b; break; case '/': res = a/b; break; default: printf ("Operação inválida (%c) entre os operandos %.2f e %.2f\n", op, a, b); break; } printf ("%.2f %c %.2f = %.2f\n", a, op, b, res); system("PAUSE"); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 luccazx Postado Maio 25, 2016 Denunciar Share Postado Maio 25, 2016 você deve usar o SWITCH quando os valores forem definidos (fixos) e o IF é pra qualquer condição A tendência é o switch ser ligeiramente mais rápido porque provavelmente ele é implementado com uma tabela de lookup. E a comparação só seria justa de no if a expressão também faz uma expressão de igualdade simples. Qualquer outra expressão tornará a comparação sem sentido já que fazem coisas diferentes. Incluindo aí comparar com expressões diferentes. Então você pode comparar a performance destes exemplos: switch (var) { case : //faz algo break; case 1: //faz algo break; case 2: //faz algo break; case 3: //faz algo break; } if (var == ) { //faz algo } elseif ($var == 1) { //faz algo } elseif ($var == 2) { //faz algo } elseif ($var == 3) { //faz algo } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Pabloferreira
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float a,b,res;
char op;
printf ("Calculadora\n");
printf ("Digite <operando><+-*/><operando>: ");
scanf ("%f%c%f",&a,&op,&b);
if (op == '+') res = a+b;
else if (op == '-') res = a-b;
else if (op == '*') res = a*b;
else if (op == '/') res = a/b;
else
{
printf ("Operação inválida (%c) entre os operandos %.2f e %.2f\n",
op, a, b);
system("PAUSE");
return 0;
}
printf ("%.2f %c %.2f = %.2f\n", a, op, b, res);
system("PAUSE");
return 0;
}
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.