作者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
→ yangwen5301:忘記說了,為什麼不打abs()而是打fabs()是因為如果打 10/21 23:55
→ yangwen5301:是abs()是提取std的形式,好像是int 10/21 23:57
→ yangwen5301:fabs()則是將abs()設為float故可以使內部的函數執行y 10/21 23:57
→ yangwen5301:直接將負數開根號會變成-1.#IND 10/22 00:00
推 randysuen:請問cmath跟math.h差在哪阿? 10/22 10:02
→ yangwen5301:沒差y 10/22 18:58
推 steve1012:cmath是c語言時代的math library c++包含了所有c語言可 10/22 23:42
推 steve1012:不過在表頭檔的地方開頭都會+c 原本在c語言叫做math 10/22 23:42
推 steve1012:在c++中就改叫cmath 不過內含的東西大致上跟math.h差不 10/22 23:43
推 steve1012:多 10/22 23:43