有没有哪位大佬,能帮我看一道84分的普及难度的题错哪儿了?
  • 板块灌水区
  • 楼主NOI_First_Prize
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/6 15:42
  • 上次更新2024/8/6 15:44:46
查看原帖
有没有哪位大佬,能帮我看一道84分的普及难度的题错哪儿了?
907288
NOI_First_Prize楼主2024/8/6 15:42
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
char a[10000000];
int flag = 1;
double shutol , xitol;
int main()
{
	char wei;
	scanf("%s",a+1);
	int n = strlen(a+1) ,m = 0;
	for(int i = 1;i <= n;i++)if(a[i] == '='){m = i;}
	else if(a[i] >= 'a' && a[i] <= 'z')wei = a[i];
	int i = 1;
	int flag = 1 , tol = 0;
	while(i < m)
	{
		if(a[i] == '=')break;
		if(a[i] == '-')flag = -1 , i++;
		if(a[i] == '+')i++;
		while(a[i] >= '0' && a[i] <= '9')tol = tol * 10 + a[i]-'0',i++;
		if(a[i] == wei) 
		{
			if(!tol) xitol += flag;
			else xitol += flag*tol;
			i++;
 		}
 		else shutol += flag * tol;
 		flag = 1 , tol = 0;
	}
	i++ , flag = 1 , tol = 0;
	double xi = 0 , shu = 0;
	while(i <= n)
	{
		if(a[i] == '=')break;
		if(a[i] == '-')flag = -1 , i++;
		if(a[i] == '+')i++;
		while(a[i] >= '0' && a[i] <= '9')tol = tol * 10 + a[i]-'0',i++;
		if(a[i] == wei) 
		{
			if(!tol) xi += flag;
			else xi += flag*tol;
			i++;
 		}
 		else shu += flag * tol;
 		flag = 1 , tol = 0;
	}
	shu -= shutol;
	xitol -= xi;
	double ans = shu / xitol;
	printf("%c=%.3f",wei,ans);
	return 0;
} 
2024/8/6 15:42
加载中...