20190302二十四点,只有50分找不到原因


#include<stdio.h>
#include<string.h>
int main()
{
    int n,a[10],sum,i,j,k;//a数组用来保存输入的所有数字
    char str[8],*yn[100];//yn存放YES或者NO;
    scanf("%d",&n);
    
    
    for(j=0;j<n;j++)//对于得到的每一个字符串进行如下操作
    {
        sum=0;
        scanf("%s",str);//每得到一个字符串
        
           
        for(i=0;i<7;i++)//数字
        {
            if(i%2==0)
                a[i]=str[i]-'0';
            else
                a[i]=0;
            
        }


        
        for(i=1;i<7;i+=2)//优先计算乘除法,sum保存乘除法最后结果,k保存最终结果
        {
                if(str[i]=='x')//乘法的话就乘号附近的两个数计算出来并且让这三个数都为计算出来的结果,方便下次计算
                {
                    sum+=a[i-1]*a[i+1];
                    a[i-1]=sum;
                    a[i]=sum;
                    a[i+1]=sum;
                    k=sum;
                    sum=0;
                }
                else if(str[i]=='/')
                {
                    sum+=a[i-1]/a[i+1];
                    a[i-1]=sum;
                    a[i]=sum;
                    a[i+1]=sum;
                    k=sum;
                    sum=0;
                }
            
        }
        
        
        for(i=1;i<7;i+=2)//计算加减法
        {
            if(str[i]=='+')
            {
                sum+=a[i-1]+a[i+1];
                a[i-1]=sum;
                a[i]=sum;
                a[i+1]=sum;
                k=sum;
                sum=0;
            }
            else if(str[i]=='-')
            {
                sum+=a[i-1]-a[i+1];
                a[i-1]=sum;
                a[i]=sum;
                a[i+1]=sum;
                k=sum;
                sum=0;
            }
        }
        


        if(k==24)
            yn[j]="Yes";
        else
            yn[j]="No";
            
        
        
    }
    
    for(i=0;i<n;i++)
             printf("%s\n",yn[i]);

     return 0;
}

你没有对括号进行处理啊
除法会有小数不能用int型计算和保存
参考

C语言计算器详细教程(四则运算、小数、括号)_皓zz的博客-CSDN博客 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档C语言计算器(带小数,括号)超详细教程前言一、目标功能二、不带括号公式实现思路三、带括号公式实现思路总结前言最近开发嵌入式采集设备时需要实现对数据的公式处理,因为运算公式是可远程配置的,不能固定写死。想偷懒百度找个先成的,一试基本都有bug,害,自己写一个吧 提示:以下为正文内容一、目标功能实现对浮点类型数据的四则运算,封装为一个工具函数模块,参数为实时数据值和公式字符串,定义如下: /* 运算结果 */ typedef https://blog.csdn.net/weixin_40934176/article/details/109663359

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。