刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

3.波兰表达式
波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+ 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的波兰表示法为* + 2 3 4。本题求解波兰表达式的值,其中运算符包括+ - * /四个。
时间限制:1000
内存限制:65536
输入
输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。
输出
输出为一行,表达式的值。 可直接用printf("%f\n", v)输出表达式的值v。
样例输入
\* + 11.0 12.0 + 24.0 35.0
样例输出
1357.000000

使用微信搜索喵呜刷题,轻松应对考试!

答案:

```c#include int main() char op;double num1, num2, result;while (scanf("%c %lf %lf", &op, &num1, &num2) == 3) {switch (op) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 == 0) {printf("Error: division by zero\n");return 1;}result = num1 / num2;break;default:printf("Error: invalid operator\n");return 1;}printf("%f\n", result);}return 0;```

解析:

【喵呜刷题小喵解析】:

本题要求求解波兰表达式的值。波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+ 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序。

我们可以使用C语言编写程序来求解波兰表达式。首先,我们需要读入运算符和运算数,然后根据运算符进行相应的运算。由于波兰表达式中的运算符和运算数之间用空格分隔,我们可以使用scanf函数来读入。

在读入运算符和运算数后,我们可以使用switch语句来根据运算符进行相应的运算。对于除法运算,我们需要判断除数是否为0,如果是,则输出错误信息并退出程序。对于其他运算符,我们可以直接进行相应的运算。

最后,我们可以使用printf函数输出表达式的值。

在样例输入中,波兰表达式为* + 11.0 12.0 + 24.0 35.0,对应的普通表达式为((11.0 + 12.0) * 24.0) + 35.0。我们可以按照波兰表达式的规则,从左到右依次进行运算,得到表达式的值。在样例输出中,表达式的值为1357.000000。
创作类型:
原创

本文链接:3.波兰表达式波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share