Pessoal, estou com um probleminha aqui nesse programa. O professor pediu pra fazer uma calculadora polonesa onde você coloca primeiro os valores e por ultimo a operação. exemplo: 5/2, ficaria 5 2 /. Eu consegui fazer com as 4 operações basicas: soma, sub, mult, div. O problema é com o logaritmo(log) e raiz quadrada(sqrt).
pois pra calcular raiz quadrada por exemplo eu não preciso de 3 variaveis como no caso da soma por exemplo.
meu código ta assim:
main()
{
char operador, resp;
float num1, num2, resultado;
resp='S';
printf("###############################################\n");
printf("#BEM VINDO A CALCULADORA POLONESA REVERSA(RPN)#\n");
printf("###############################################\n\n");
/* Inicia a calculadora */
while (resp=='S' || resp=='s')
{
printf("Escvreva uma operacao:\n"); scanf("%f %f %c", &num1, &num2, &operador);
/* Verifica se os operadores são validos */
while(! num1 || ! num2 || ! operador)
{
printf("Operador invalido\n");
/* Limpa o buffer do teclado */
fflush(stdin);
printf("Escvreva uma operacao:\n"); scanf("%f %f %c", &num1, &num2, &operador);
}
/* Escolhe a operacao aritmetica */
switch (operador)
{
case '+': resultado=num1+num2;
break;
case '-': resultado=num1-num2;
break;
case '*': resultado=num1*num2;
break;
case '/': resultado=num1/num2;
break;
}
/* Escreve na tela o resultado */
printf("%d %c %d = %.2f\n", num1, operador, num2, resultado);
/* Pergunta se deseja continuar */
printf("Deseja continuar?(S/N)"); scanf(" %c", &resp);
/* Limpa a tela e limpa o buffer do teclado */
system("cls"); fflush(stdin);
}
}
no caso eu poderia primeiro perguntar qual operação a pessoa quer fazer. mas o professor disse q não! quer q a pessoa simplismente digite a operação, seja ela: "5 5 *" ou simplismente "10 log" ou "15 sqrt"
Pergunta
icemaster
Pessoal, estou com um probleminha aqui nesse programa. O professor pediu pra fazer uma calculadora polonesa onde você coloca primeiro os valores e por ultimo a operação. exemplo: 5/2, ficaria 5 2 /. Eu consegui fazer com as 4 operações basicas: soma, sub, mult, div. O problema é com o logaritmo(log) e raiz quadrada(sqrt).
pois pra calcular raiz quadrada por exemplo eu não preciso de 3 variaveis como no caso da soma por exemplo.
meu código ta assim:
no caso eu poderia primeiro perguntar qual operação a pessoa quer fazer. mas o professor disse q não! quer q a pessoa simplismente digite a operação, seja ela: "5 5 *" ou simplismente "10 log" ou "15 sqrt"
me dá uma luz ae
Editado por icemasterLink para o comentário
Compartilhar em outros sites
6 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.