Помогите исправить ошибку: чтобы калькулятор воспринимал не только положительные, но и отрицательные числа.
Код: Выделить всё
int main()
{
FILE *f;
f=fopen(FNAME, "r");
int stack[200];
char q[200];
int sp = 0;
while(!feof(stdin))
{
if(scanf ("%s", q) != 1 )
{
break;
}
int LengthString = strlen(q);
if (LengthString == 1)
{
switch(q[0])
{
case '\0':
break;
case '=':
printf("Result = %d\n", stack[--sp]);
break;
case '+':
stack[sp-2] = stack[sp-2] + stack[sp-1];
sp--;
break;
case '-':
stack[sp-2] = stack[sp-2] - stack[sp-1];
sp--;
break;
case '*':
stack[sp-2] = stack[sp-1] * stack[sp-2];
sp--;
break;
case '/':
stack[sp-2] = stack[sp-1] / stack[sp-2];
sp--;
break;
default:
stack[sp++] = atoi(q);
}
}
}
return 0;
getch();
}