Complete the ternary calculation.
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:
There is a string in the form of "number1 operatoranumber2 operatorb number3". Each operator will be one of {'+', '-' , '*', '/', '%'}, and each number will be an integer in [1, 1000].
For each test case, output the answer.
5 1 + 2 * 3 1 - 8 / 3 1 + 2 - 3 7 * 8 / 5 5 - 8 % 3
7 -1 0 11 3
The calculation "A % B" means taking the remainder of A divided by B, and "A / B" means taking the quotient.
/********************************************************************************/
此题也是这届省赛的一道水题,就是普通的四则运算(增加一个取模运算),重点在于优先级,如果前一个运算符是‘+’或者‘-’,后一个运算符是‘*’或‘/‘或’%‘,就要优先计算后两项的结果
#include<stdio.h> int fun(int m,char z,int n) { int ans=0; //printf("%c\n",z); switch(z) { case'+':ans=m+n;break; case'-':ans=m-n;break; case'*':ans=m*n;break; case'/':ans=m/n;break; case'%':ans=m%n;break; } //printf("%d\n",ans); return ans; } int main() { int t,a,b,c,sum; char x,y; scanf("%d",&t); while(t--) { sum=0; scanf("%d %c %d %c %d",&a,&x,&b,&y,&c); //printf("%d %c %d %c %d\n",a,x,b,y,c); if(x=='*'||x=='/'||x=='%') { sum=fun(a,x,b); sum=fun(sum,y,c); } else if(y=='*'||y=='/'||y=='%') { sum=fun(b,y,c); sum=fun(a,x,sum); } else { sum=fun(a,x,b); sum=fun(sum,y,c); } printf("%d\n",sum); } return 0; }