提交记录:https://www.luogu.com.cn/record/120712124
代码:
#include <bits/stdc++.h>
#define MX 100
using namespace std;
char s[MX + 10];
int f[MX + 10];
int v[MX + 10];
int main()
{
cin >> s;
int len = strlen(s);
double ans;
int i,k;
char ch;
for(i = 0;i < len;i++)
{
if(s[i] == '=')
{
k = i;
}
if(isalpha(s[i]))
{
ch = s[i];
v[i] = 1;
}
if(isdigit(s[i]))
{
if(i == 0)
{
f[i] = s[i] - '0';
}
else if(s[i - 1] == '+' || s[i - 1] == '=')
{
f[i] = s[i] - '0';
}
else
{
f[i] = -(s[i] - '0');
}
}
}
int cnt1 = 0,cnt2 = 0;
for(i = 0;i <= k;i++)
{
if(v[i] == 1)
{
if(i == 0 || f[i - 1] == 0)
{
cnt1 = cnt1 + 1;
}
else
{
if(i != 0)
cnt1 = cnt1 + f[i - 1];
}
}
else
{
if(i != 0)
{
cnt2 = cnt2 - f[i - 1];
}
}
}
for(i = k + 1;i <= len;i++)
{
if(v[i] == 1)
{
if(i == 0 || f[i - 1] == 0)
{
cnt1 = cnt1 - 1;
}
else
{
cnt1 = cnt1 - f[i - 1];
}
}
else
{
if(i != 0)
{
cnt2 = cnt2 + f[i - 1];
}
}
}
ans = cnt2 * 1.0 / cnt1;
printf("%c=%.3f\n",ch,ans);
return 0;
}