>Description
最近实验室收到了一个任务:解一元一次方程。
为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:
4+3x=8
6a−5+1=2−2a
−5+12y=0
ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及+、-、=这三个数学符号(当然,符号“-”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。
你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。
>Input
一个一元一次方程。
>Output
解方程的结果(精确至小数点后三位)。
>Sample Input
6a-5+1=2-2a
>Sample Output
a=0.750
>解题思路
一道模拟题。
把未知数移到等号左边,把剩下的移到方程的右边,分别记录下他们的系数即可。
需要注意的坑:
- -1a是以-a的方式呈现
- 在c++中,0除以一个负数得出来的是-0
>代码
#include <iostream>
#include <cstdio>
#include <cstring>
#define ll long long
using namespace std;
ll x, y, l, s; //x记录等号左边的系数,y记录等号右边的系数
char c, a;
double ans;
int main()
{
l = 0, s = 1; //l记录当前系数,s记录当前符号
c = getchar();</