Expressão matemática parentizada

1. Expressão matemática parentizada

Lucas Paulino
luhc

(usa Ubuntu)

Enviado em 07/10/2009 - 10:15h

Bom dia a todos !

To quebrando a cabeça, mas não consigo...preciso fazer um programa que dê o resultado para uma expressão matemática parentizada...
Detalhe, a expressão só pode ter +,-,/ e *. E os números tem que ser float.

Ah outra coisa é por recursão. =\

Se alguem puder me ajudar o mais rápido possível eu agradeceria muito!

Abraaaço!


  


2. Re: Expressão matemática parentizada

Lucas Paulino
luhc

(usa Ubuntu)

Enviado em 07/10/2009 - 11:46h

Estava pensando em algo desse tipo, mas não tá dando certo. =\

int calcular(char *expr)
{
char token, op;
int i=0, tam=0, num, res;

sscanf(&expr[i], "%c%n", &token, &tam);

if(token == '(')
return calcular(expr+tam);

sscanf(&expr[i], "%d%n", &num, &tam);
i += tam;
sscanf(&expr[i], "%c%n", &op, &tam);
i += tam;

if(op == '(')
return calcular(expr+tam);
if(op == '+')
return num+calcular(expr+tam);
if(op == '-')
return num-calcular(expr+tam);
if(op == '*')
return num*calcular(expr+tam);
if(token == '/')
return num/calcular(expr+tam);
if(token == ')')
return res;

return res;
}






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts