帮我下~!!!!,C语言-编程 !!!答案写下 5
一个简单的计算器【问题描述】设计一个简单的计算器,其输入为一次性将所有的计算命令输入,先计算的后输入。首行告诉总共有多少个运算符参加运算,所有的输入及输出都为整数。操作有...
一个简单的计算器
【问题描述】
设计一个简单的计算器,其输入为一次性将所有的计算命令输入,先计算的后输入。
首行告诉总共有多少个运算符参加运算,所有的输入及输出都为整数。
操作有只有Add Sub Mul即加法、减法、乘法三种。
【输入形式】
首行:总的操作数
其余各行:操作种类、操作数
【输出形式】
输出结果
【样例输入】
4
Add 1
Sub 2
Mul 4
Sub 4 5
【样例输出】
3
【样例说明】
计算表达式为(5-4)*4-2+1 展开
【问题描述】
设计一个简单的计算器,其输入为一次性将所有的计算命令输入,先计算的后输入。
首行告诉总共有多少个运算符参加运算,所有的输入及输出都为整数。
操作有只有Add Sub Mul即加法、减法、乘法三种。
【输入形式】
首行:总的操作数
其余各行:操作种类、操作数
【输出形式】
输出结果
【样例输入】
4
Add 1
Sub 2
Mul 4
Sub 4 5
【样例输出】
3
【样例说明】
计算表达式为(5-4)*4-2+1 展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, i;
scanf("%d", &n);
char (*oper)[4] = (char (*)[4])malloc(n*sizeof(char*));//操作符(operator)数组
int *op = (int*)malloc((n + 1)*sizeof(int));//操作数(operand)数组
for (i = 0; i < n; ++i)
scanf("%s %d", oper[i], &op[i]);
scanf("%d", &op[n]);
for (i = n; i > 0; --i)
{
switch (oper[i-1][0])
{
case 'A':
op[i-1] = op[i] + op[i-1];
break;
case 'S':
op[i-1] = op[i] - op[i-1];
break;
case 'M':
op[i-1] = op[i]*op[i-1];
break;
}
}
printf("%d\n", op[0]);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询