36代码求调
查看原帖
36代码求调
1013323
wangyutian578楼主2023/8/13 19:57

提交记录: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;
}
2023/8/13 19:57
加载中...