SDUSTOJ Problem F: 一元二次方程类
2016-03-11 19:10
274 查看
Description
定义一个表示一元二次方程的类Equation,该类至少具有以下3个数据成员:a、b和c,用于表示方程“a*x*x + b*x +c = 0”。同时,该类还至少具有以下两个成员函数:1. void solve():用于求方程的根。
2. void printRoot():用于输出方程的根。
设定:
1. 所有输入的a、b、c所生成的方程必定有个2个不同的实根。
2. 输出的两个根按照从大到小的顺序输出,两个根之间用一个空格隔开,而且每个根必须且仅能保留2位小数,即使小数部分为0。
3. 请根据样例和给出的main()函数定义相应的构造函数。
Input
输入有若干行,每行有3个实数,分别为方程“a*x*x + b*x + c = 0”中的系数a、b、c。Output
按照题目要求中的设定条件2输出方程的根。Sample Input
1 3 2Sample Output
-1.00 -2.00HINT
可以使用fixed和setprecision()来实现输出固定小数位数的数值。Append Code
append.cc,#include<iostream> #include<iomanip> #include<cmath> using namespace std; class Equation{ private: double a; double b; double c; double s1; double s2; public: Equation(double x,double y,double z):a(x),b(y),c(z){} void solve() { s1=(-b+sqrt(b*b-4*a*c))/(2*a); s2=(-b-sqrt(b*b-4*a*c))/(2*a); } void printRoot() { cout <<setiosflags(ios::fixed); cout<<setprecision(2)<<max(s1,s2)<<" "<<min(s1,s2)<<endl; } }; int main() { double a, b, c; while (cin>>a>>b>>c) { Equation equ(a,b,c); equ.solve(); equ.printRoot(); } return 0; }
相关文章推荐
- 怎么修改Elasticsearch的对外ip 默认是本地IP 127.0.0.1
- eclipe che 体验中
- iOS单利模式透析
- HashMap和Hashtable的区别
- 用编程的方式定义UI界面
- 异常语句的学习
- 无题
- iOS--自定义系统控件
- 面试后一点反思和毕设计划
- qt显示RGB彩色图
- Nmap扫描教程之DNS服务类
- UVA 1262
- C++ 面向对象的三大特征
- HDU 4673 Theme Section
- UVa 10603 Fill [暴力枚举、路径搜索]
- SDUSTOJ Problem E: 时间类的成员读写
- 使用tornado让你的请求异步非阻塞
- argparse - 命令行选项与参数解析(译)
- Android 启动APP时黑屏白屏的三个解决方案
- 修改HttpServletRequest的中的参数值