题目描述
根据输入的含有两个二元运算的表达式,编程计算并输出表达式的值。如输入: 2+9*2,输出20
输入
输入表达式(运算数为整数)
输出
计算结果(保留整数)
样例输入
1*4-5
样例输出
-1
参考代码
#include <stdio.h>
int calc(int num1,int num2,char oper)
{
switch(oper)
{
case '+':
return num1+num2;
case '-':
return num1-num2;
case '*':
return num1*num2;
case '/':
return num1/num2;
}
return 0;
}
int main()
{
int num1,num2,num3,priority1,priority2,result;
char oper1[2],oper2[2];
scanf("%d%[-+*/]%d%[-+*/]%d",&num1,oper1,&num2,oper2,&num3);
priority1 = (oper1[0]=='+'||oper1[0]=='-')?1:2;
priority2 = (oper2[0]=='+'||oper2[0]=='-')?1:2;
if(priority1>=priority2)
{
result =calc(num1,num2,oper1[0]);
result =calc(result,num3,oper2[0]);
} else
{
result =calc(num2,num3,oper2[0]);
result =calc(num1,result,oper1[0]);
}
printf("%d",result);
return 0;
}
解析
暂无