虽然是水题,但还是把我搞晕了- -。
只有 a+(-)b*(除或%)c才需要先计算后面两个
So 其实想清楚了很简单。。。。。。。
#include<stdio.h>
int op(int a,char b,int c){
switch(b){
case '+':
return a+c;
case '-':
return a-c;
case '*':
return a*c;
case '/':
return a/c;
case '%':
return a%c;
}
}
int main(){
int N;
scanf("%d",&N);
while(N--){
char b,d;
int a,c,e;
int l=0,r=0,sum=0;
scanf("%d %c %d %c %d",&a,&b,&c,&d,&e);
if((d=='*'||d=='/'||d=='%')&&(b=='+'||b=='-')){
printf("%d\n",op(a,b,op(c,d,e)));
}else{
printf("%d\n",op(op(a,b,c),d,e));
}
}
return 0;
}
本文介绍了一个简单的表达式计算器实现,该计算器能够处理基本的算术运算,包括加、减、乘、除和取模操作。文章通过一个C语言程序展示了如何根据运算符的优先级来计算表达式的值。

被折叠的 条评论
为什么被折叠?



