依然是自帶大常數的\(stl\)
於是乎就有了這個很長的**
雖然很長但是很傻瓜
但其實就是很傻。
詳情看注釋
// p1022.cpp: 定義控制台應用程式的入口點。
////#include "stdafx.h"
//#include #include #include #include #include #include #include #include using namespace std;
listl, l1, l2;
double unk = 0;//未知數的係數
c = 0;//常數項
char unkw;//未知數的字母,因為本題的字母不確定所以要單獨記錄
int yes = 1;//↑跟unkw有關的乙個引數
void intial()//初始化
int flag = 0;
//↓要十分注意,在我們的習慣中未知數的係數如果是1的話是可以省略的
//↓這是本題乙個坑點
for (list::iterator it = l.begin(); it != l.end(); it++)
if (*it >= 'a'&&*it <= 'z')
it++;
} //↓把等號左右兩邊的東西分開放更加直觀而方便
for (list::iterator it = l.begin(); it != l.end(); it++)
it--;
} if (flag == 0)
if (flag == 1)
}l1.push_back('+');
l2.push_back('+');
//判斷的時候是取兩個符號之間的數的,所以要在末尾補上符號
}void debug()//這個只是用來除錯的
int ltoi(listtlist)//從list到int的函式
} return minus ? (-ans) : (ans);
}void deal(listtlist)//分離未知數和常數
else }
}void judge()//處理等號左邊的東西
if (cnt == 2)//右邊有符號,記錄
} }}
void judge2()//對於右邊東西的判定,大體與judge()相同
if (cnt == 2)
else
cnt = 0;
deal(curr);
curr.clear();
}} }
}int main()
intial();
//debug();
judge();
judge2();
double x = 0;
x = -(c / unk);
if (x == 0)x = abs(x);//注意對-0.000特殊處理,坑點!
cout << c << ' ' << unk << endl;
cout << unkw << '=';
printf("%.3f", x);//保留三位
return 0;
}
P1022計算器 改良
傳送 這個題讓你通過自己的努力,來寫乙個可以解一元一次方程的計算題 麻麻再也不用擔心我計算錯了qwq 我們先學習一下一元一次方程的解法 step1 移項。把帶有未知數的項移到方程的一邊,把常數項移到方程的另一邊。step2 係數化一。方程左右兩邊同時除以未知數的係數 step3 寫答 最後別忘了輸出...
P1022 計算器的改良
nclncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。為了很好的完成這個任務,zlzl先生首先研究了一些一元一次方程的例項 4 3x 84 3x 8 6a ...
P1022 計算器的改良
nclncl是一家專門從事計算器改良與公升級的實驗室,最近該實驗室收到了某公司所委託的乙個任務 需要在該公司某型號的計算器上加上解一元一次方程的功能。實驗室將這個任務交給了乙個剛進入的新手zl先生。為了很好的完成這個任務,zlzl先生首先研究了一些一元一次方程的例項 4 3x 84 3x 8 6a ...