作者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
1F:→ yangwen5301:忘记说了,为什麽不打abs()而是打fabs()是因为如果打 10/21 23:55
2F:→ yangwen5301:是abs()是提取std的形式,好像是int 10/21 23:57
3F:→ yangwen5301:fabs()则是将abs()设为float故可以使内部的函数执行y 10/21 23:57
4F:→ yangwen5301:直接将负数开根号会变成-1.#IND 10/22 00:00
5F:推 randysuen:请问cmath跟math.h差在哪阿? 10/22 10:02
6F:→ yangwen5301:没差y 10/22 18:58
7F:推 steve1012:cmath是c语言时代的math library c++包含了所有c语言可 10/22 23:42
8F:推 steve1012:不过在表头档的地方开头都会+c 原本在c语言叫做math 10/22 23:42
9F:推 steve1012:在c++中就改叫cmath 不过内含的东西大致上跟math.h差不 10/22 23:43
10F:推 steve1012:多 10/22 23:43