Fw: [C++ ] 一元二次方程式上機考參考解答

看板NTUBIME104HW作者 (豆腐)時間12年前 (2011/12/10 01:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 NTUBIME103HW 看板 #1Cm65RUW ] 作者: yangwen5301 (大番薯) 看板: NTUBIME103HW 標題: [C++ ] 一元二次方程式上機考參考解答 時間: Thu Oct 21 23:50:49 2010 還是beta版,雖然測試過幾組答案,但是我不知道有時有沒意外發生= = #include <iostream> #include <iomanip> #include <math.h> using namespace std; int main() { double a; double b; double c; cout<<"這是一個可以計算一元二次方程式aX^2+bX+c=0的程式,請輸入a, b, c三數"; cout<<"\n輸入後將為您算出答案"; cout<<"a:"; cin>>a; cout<<"b:"; cin>>b; cout<<"c"; cin>>c; if((pow(b,2)-4*a*c)>=0) cout<<"The result is: X="<<(-b+pow((pow(b,2)-(4*a*c)),0.5))/(2*a)<< " or "<<(-b-((pow(b,2)-(4*a*c),0.5))/(2*a)<<endl; else cout<<"The result is: X="<<-b/(2*a)<<"+"<< pow(fabs(pow(b,2)-(4*a*c),0.5)/(2*a)<<"i or "<<-b/(2*a)<<"-"<< pow(fabs(pow(b,2)-(4*a*c),0.5)/(2*a)<<"i"<<endl; system("pause"); return 0; } 標準的土法煉鋼法,將虛數部分與時數部分分開做運算再顯示 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.212.128

10/21 23:55, , 1F
忘記說了,為什麼不打abs()而是打fabs()是因為如果打
10/21 23:55, 1F

10/21 23:57, , 2F
是abs()是提取std的形式,好像是int
10/21 23:57, 2F

10/21 23:57, , 3F
fabs()則是將abs()設為float故可以使內部的函數執行y
10/21 23:57, 3F

10/22 00:00, , 4F
直接將負數開根號會變成-1.#IND
10/22 00:00, 4F

10/22 10:02, , 5F
請問cmath跟math.h差在哪阿?
10/22 10:02, 5F

10/22 18:58, , 6F
沒差y
10/22 18:58, 6F

10/22 23:42, , 7F
cmath是c語言時代的math library c++包含了所有c語言可
10/22 23:42, 7F

10/22 23:42, , 8F
不過在表頭檔的地方開頭都會+c 原本在c語言叫做math
10/22 23:42, 8F

10/22 23:43, , 9F
在c++中就改叫cmath 不過內含的東西大致上跟math.h差不
10/22 23:43, 9F

10/22 23:43, , 10F
10/22 23:43, 10F
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: g85101878 (140.112.218.137), 時間: 12/10/2011 01:06:41
文章代碼(AID): #1Eua0Zwn (NTUBIME104HW)