二次方程計算器 字串處理

2021-08-20 23:31:23 字數 866 閱讀 5247

參考:

設計乙個二次方程計算器

每個案例是關於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...