@[付_Ruby](/user/291608) 代码?
by wlxs2006 @ 2020-10-18 18:52:32
@[付_Ruby](/user/291608) 求助希望能给代码
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
char c;
vector<int> sumx,sumn;
int sum=0,neg=1,equal=0,undone=1;
string a;
cin >> a;//123->12
for(int i=0;i<a.size();i++)
{
if(islower(a[i])) c=a[i];
if(a[i]=='=') equal=1;
if(a[i]=='-') neg=-1;
if(a[i]=='+' || a[i]=='=') neg=1;
if(isdigit(a[i]))
{
sum=sum*10+(a[i]-'0')*neg;
if(isdigit(a[i+1])) undone=1;
else undone=0;
}
if(islower(a[i]) && !isdigit(a[i-1])) sumx.push_back(1);
if(!isdigit(a[i]) && sum!=0)
sum=0;
if(equal==0)//左边
{
if(undone==0 && sum)
{
if(isdigit(a[i]) && islower(a[i+1])) sumx.push_back(sum);//是未知数前面的数字
if(isdigit(a[i]) && !islower(a[i+1])) sumn.push_back(-sum);//不是未知数前面的数字
}
}
else//右边
{
if(undone==0 && sum)
{
if(isdigit(a[i]) && islower(a[i+1])) sumx.push_back(-sum);//是未知数前面的数字
if(isdigit(a[i]) && !islower(a[i+1])) sumn.push_back(sum);//不是未知数前面的数字
}
}
}
int ts=0;
for(int i=0;i<sumx.size();i++) ts+=sumx[i];
int tn=0;
for(int i=0;i<sumn.size();i++) tn+=sumn[i];
double shang=double(tn)/ts;
printf("%c=%.3lf",c,shang);
return 0;
}
```
喏,答案。讲解:
vector用于调试,不说了,islower函数判断字符是否为字母,isdigit函数判断字符是否为数字,不谢
by 起名字重要吗 @ 2020-10-18 18:55:29