个人认为代码思路还行,但是输出不对
查看原帖
个人认为代码思路还行,但是输出不对
553871
JMxxxx楼主2023/10/13 12:48
#include<bits/stdc++.h>
using namespace std;
int cnt,cofficient;
char c,p;
int a[1010],mid,l,k;
int main()
{
    memset(a,0,sizeof(a));
    k=1;
    while(c!='=')
    {
        c=getchar();
        if(c=='+')
        {
            k=1;
            ++l;
        }
        if(c=='-')
        {
            k=-1;
            ++l;
        }
        if(c>='0'&&c<='9')
        {
            if(a[l]==0)
            {
                a[l]=(c-'0')*k;
            }
            else
            {
                a[l]=a[l]*10+(c-'0')*k;
            }
        }
        if(c>='a'&&c<='z')
        {
            p=c;
            if(a[l]!=0)
            {
                cofficient+=a[l];
                a[l]=0;
            }
            else
            {
                cofficient+=k;
            }
            --l;
        }
    }
    mid=l,++l,k=1;
    while(c!='\n')
    {
        c=getchar();
        if(c=='+')
        {
            k=1;
            ++l;
        }
        if(c=='-')
        {
            k=-1;
            ++l;
        }
        if(c>='0'&&c<='9')
        {
            if(a[l]==0)
            {
                a[l]=(c-'0')*k;
            }
            else
            {
                a[l]=a[l]*10+(c-'0')*k;
            }
        }
        if(c>='a'&&c<='z')
        {
            p=c;
            if(a[l]!=0)
            {
                cofficient-=a[l];
                a[l]=0;
            }
            else
            {
                cofficient-=k;
            }
            --l;
        }
    }
    for(int i=1;i<=l;i++)
    {
        if(i<=mid)
        {
            cnt-=a[i];
        }
        else
        {
            cnt+=a[i];
        }
    }
    cout<<cnt<<" "<<cofficient<<endl;
    for(int i=1;i<=l;i++)
    {
        cout<<a[i]<<" ";
    }
    if(!(cnt/cofficient))
    {
        printf("%c=0.000",p );
    }
    else
    {
        printf("%c=%.3lf",p,cnt/cofficient);
    }
}
2023/10/13 12:48
加载中...