栈的应用,将数字转换为整型压入栈中,诺遇到运算符则弹出栈中的两个元素,将运算结果压入栈中
#include <stdio.h>
#include<string.h>
int main() {
long long s[100];
int top = -1;
char c[100];
scanf("%s", c);
for (int i = 0;i < strlen(c);i++) {
if (c[i] >= '0' && c[i] <= '9') {
long long ret = 0;
while (c[i] >= '0' && c[i] <= '9') {
ret = ret * 10 + c[i] - '0';
i++;
}
s[++top] = ret;
}
else if (c[i] == '+' || c[i] == '-' || c[i] == '*' || c[i] == '/') {
long long tmp = 0;
switch (c[i]) {
case '+':tmp = s[top-1] + s[top];
break;
case '-':tmp = s[top - 1] - s[top];
break;
case '*':tmp = s[top-1] * s[top];
break;
case '/':tmp = s[top - 1] / s[top];
break;
}
s[--top] = tmp;
}
else if (c[i] == '@')break;
}
printf("%lld", s[top]);
return 0;
}

京公网安备 11010502036488号