Hello there,

I am trying to make a calculator program. But I have a problem with the negative sign. I fixed the program to do expression of (0-5)+12 if I want 5 to be negative. But I want and I am expecting it to do something like -5+12 .Please help...Thank you in advance

EXAMPLE OUTPUT :

but if I do this:

also, I have a condition:

so that in converting infix to postfix

and in evaluating a postfix I have in my main:

case '-':

else if ('-' == UNARY) // unary operator

{

//push2(pop2() * (0-1));

push2(pop2() * -1);

}

I am trying to make a calculator program. But I have a problem with the negative sign. I fixed the program to do expression of (0-5)+12 if I want 5 to be negative. But I want and I am expecting it to do something like -5+12 .Please help...Thank you in advance

EXAMPLE OUTPUT :

Code:

Enter an infix expression: infix: -5+12 postfix:_5_-_12_+ //'_' this sign is a space , error: pop empty stack //so this is wrong

Code:

Enter an infix expression: infix: 5+12 postfix:5_12_+ //'_' this sign is a space Answer: 17 //so I succeded here

Code:

case '-': if ((input_string == OPERATOR) || (input_string == '\0') && (input_string== '-')) { return (UNARY); //a minus sign followed by a an operator or null is a unary } else { return (OPERATOR); //a minus sign after a number or right parenthesis is a subtraction }

so that in converting infix to postfix

Code:

case UNARY: push1(input_string[i]); break;

case '-':

else if ('-' == UNARY) // unary operator

{

//push2(pop2() * (0-1));

push2(pop2() * -1);

}