1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
int (char **tokens, int tokensSize) { int stack[10000]; int top = -1; for (int i = 0; i < tokensSize; ++i) { if (isdigit(tokens[i][0]) || (tokens[i][0] == '-' && isdigit(tokens[i][1]))) { stack[++top] = atoi(tokens[i]); } else { printf("%sn", tokens[i]); switch (tokens[i][0]) { case '+': stack[top - 1] = stack[top - 1] + stack[top]; top--; break; case '-': stack[top - 1] = stack[top - 1] - stack[top]; top--; break; case '*': stack[top - 1] = stack[top - 1] * stack[top]; top--; break; case '/': stack[top - 1] = stack[top - 1] / stack[top]; top--; break; } } } return stack[top]; }
|
近期评论