參考:
設計乙個二次方程計算器
每個案例是關於x的乙個二次方程表示式,為了簡單,每個係數都是整數形式。
每個案例輸出兩個實數(由小到大輸出,中間由空格隔開),保留兩位小數;如果無解,則輸出「no solution」。示例1
複製
x^2+x=3x+4
複製
-1.24 3.24
#include #include#includeusing namespace std;
int main()
return 0;
}
//關鍵點就是如何處理字串。
從左到右掃瞄,係數可能有負數(需要有乙個sign來標記),可能是兩位數(用while迴圈來讀取)。
遇到的問題:1.在c中輸入字串,只能通過scanf("%s",ch[i]);ch是乙個二維陣列,如果放乙個string的話,會有段錯誤。
2.在用c輸出兩位小數時,double型別應該用scanf("%lf",&f);讀入,但輸出和float型別是一樣的,printf("%f",f);沒有%lf,會產生輸出錯誤問題。
3.不要判斷相等只寫乙個=啊,造成了死迴圈。。
邊界情況的處理在if判斷裡,比較麻煩;
當是常數項時,在字串中間(當前不是x)或者是最後(i==l);當是指數1時,邊界情況是(i==l-1)即還剩乙個x,或者是i+1不是^(通過判斷常數項已經能夠判斷當前字元是x了);否則就是指數2項。還要判斷係數為1的情況,我是通過temp==0來判斷,第一次提交時只通過95%的用例,有乙個-10x^2-10x=0,結果出錯計算得到的b=-11.這就是因為我的判斷條件有問題,所以加上了乙個temp==0||l==r,就可以了。3h
python 二次方程
匯入 cmath模組,計算複雜數 算 eg 我們計算二次方程式 ax 2 bx c 0 如下 import cmath a float input 輸入 a b float input 輸入 b c float input 輸入 c d b 2 4 a c 兩種求解方式 sol1 b cmath.s...
設計乙個二次方程計算器
題目描述 設計乙個二次方程計算器 輸入 每個案例是關於x的乙個二次方程表示式,為了簡單,每個係數都是整數形式。輸出 每個案例輸出兩個實數 由小到大輸出,中間由空格隔開 保留兩位小數 如果無解,則輸出 no solution 樣例輸入 x 2 x 3x 4 樣例輸出 1.24 3.24 注意要考慮係數...
python 一元二次方程計算器
萌新練手 usr bin env python3 coding utf 8 import math defqua a,b,c a1 b math.sqrt b b 4 a c a2 b math.sqrt b b 4 a c x1 a1 2 a x2 a2 2 a return x2,x1 a1,b...