80分警示后人
查看原帖
80分警示后人
1167566
lizicl楼主2024/6/20 20:08

大佬们救救我吧!!

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a=0,b=0;//a-未知数系数,b-常数和
    char c;//未知数
    bool flag=0;//0为等号左边,1为等号右边(未知数在左,常数在右)
    int m=0,zf=1;//zf-数字正负
    while(1)
    {
        char ch=getchar();
        if(ch=='\n')
            break;
        while(ch>='0' && ch<='9')//数字就加 
        {
            m=m*10+ch-'0';
            ch=getchar();
        }
        if(ch >= 'a' && ch <= 'z')//加未知数 系数 
        {
            c = ch;
            m *= zf;//正负 
            if(!flag)//在左边直接加,在右边加相反数 
                a+=m;
            else a-=m;
        }
        else
        {
            if(m!=0)//加常数 
            {
                m*=zf;//正负 
                if(!flag)//在右边直接加,在左边加相反数 
                    b-=m;
                else b+=m;
            }
            if(ch == '+')//正负处理 
                zf = 1;
            else if(ch == '-')
                zf = -1;
            else flag = 1, zf = 1;//等于号处理 
        }
        m = 0; 
    }
    printf("%c=%.3f\n",c,b*1.0/a);
    return 0;
}
2024/6/20 20:08
加载中...