1. 题目

传送门= ̄ω ̄=

题意:输入一个一元一次方程,求解。方程中的运算符只会有“+ - =”三个符号。

2. 题解

很水的模拟。
但不知道为什么dalao们的代码都那么长。。。
设$xc$为未知数合并以后的系数,$cc$为常数合并以后得到的常数。答案就是$-cc/xc$
移项不需要真正移动,设一个$flag$,当读到等于号时设置$flag$为$-1$即可。每次把得到的数字乘以$flag$。
getchar一个个读入字符,遇到EOF(end of file)停止读入。
读到"="就设置$flag$为$-1$,后面得到的系数全部乘以$flag$,就实现了移项($flag$初始为1)。
读到"-"就设置$flag2$为-1,后面得到的一个系数乘以$flag2$,乘完以后$flag2$清空为$1$。
读到"+"不管它。
读到数字就使当前系数*10再加上该数字。

因为有未知数,未知数系数如果没写默认为1,所以数字时初始为1,所以需要特判,是否为未知数项。
这个用一个bool型的isnew变量就可以判断。isnew默认为1,如果读到一个数字且isnew为1,isnew设为0,数字也设为0。

还要注意,如果cc为0,那么答案会得到-0.000,就WA了。
需要特判。

代码: