G - Ternary Calculation(运算符优先级问题)

本文介绍了一个简单的C语言程序,该程序根据输入的三个数及两个运算符计算表达式的值,考虑了运算符的优先级。程序首先读取测试用例的数量,然后逐个处理每个用例中的数值和运算符,通过条件判断实现不同运算符的优先级处理。


考虑优先级问题,才两个运算符,可以的

#include<stdio.h>
#include<string.h>
int main(){
    int a,b,c,T,i,j,k,sum;
    char ss1[10],ss2[10];
    scanf("%d",&T);
    while(T--){
        scanf("%d%s%d%s%d",&a,ss1,&b,ss2,&c);
        sum=0;
        if((ss1[0]=='+'||ss1[0]=='-')&&(ss2[0]=='*'||ss2[0]=='/'||ss2[0]=='%')){
            if(ss2[0]=='*') sum=b*c;
            else if(ss2[0]=='/')  sum=b/c;
            else if(ss2[0]=='%') sum=b%c;
            else if(ss2[0]=='+') sum=b+c;
            else if(ss2[0]=='-')  sum=b-c;
            if(ss1[0]=='+')  sum+=a;
            else if(ss1[0]=='-')  sum=a-sum;
        }
        if((ss1[0]=='+'||ss1[0]=='-')&&(ss2[0]=='+'||ss2[0]=='-')){
            if(ss1[0]=='+') sum=a+b;
            else if(ss1[0]=='-') sum=a-b;
            if(ss2[0]=='+') sum+=c;
            else sum-=c;
        }
        if((ss1[0]=='*'||ss1[0]=='/'||ss1[0]=='%')&&(ss2[0]=='*'||ss2[0]=='/'||ss2[0]=='%'||ss2[0]=='+'||ss2[0]=='-')){
            if(ss1[0]=='*') sum=a*b;
            else if(ss1[0]=='/') sum=a/b;
            else if(ss1[0]=='%') sum=a%b;
            if(ss2[0]=='*') sum=sum*c;
            else if(ss2[0]=='/')  sum=sum/c;
            else if(ss2[0]=='%') sum=sum%c;
            else if(ss2[0]=='+')  sum+=c;
            else if(ss2[0]=='-')  sum-=c;
        }
        printf("%d\n",sum);
    }
}




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值