• Equation(类与对象+构造)


    目录

    题目描述

    AC代码

    思路分析


    题目描述

    建立一个类Equation,表达方程ax2+bx+c=0。类中至少包含以下方法:

    1、无参构造(abc默认值为1、1、0)与有参构造函数,用于初始化a、b、c的值;

    2、set方法,用于修改a、b、c的值

    3、getRoot方法,求出方程的根。

    一元二次方程的求根公式如下:

    一元二次方程的求解分三种情况,如下:

    输入

    输入测试数据的组数t

    第一组a、b、c

    第二组a、b、c

    输出

    输出方程的根,结果到小数点后2位

    在C++中,输出指定精度的参考代码如下:

    #include

    #include <iomanip> //必须包含这个头文件

    using namespace std;

    void main( )

    { double a =3.141596;

    cout<

    输入样例1 

    3
    2 4 2
    2 2 2
    2 8 2

    输出样例1

    x1=x2=-1.00
    x1=-0.50+0.87i x2=-0.50-0.87i
    x1=-0.27 x2=-3.73

    AC代码

    1. #include<iostream>
    2. #include<cmath>
    3. #include<iomanip>
    4. using namespace std;
    5. class Equation {
    6. double a, b, c;
    7. public:
    8. Equation() {
    9. a = b = c = 1;
    10. }
    11. Equation(float a, float b, float c): a(a), b(b), c(c) {}
    12. void setabc(float a, float b, float c) {
    13. this->a = a;
    14. this->b = b;
    15. this->c = c;
    16. }
    17. void getRoot() {
    18. float judge = b * b - 4 * a * c,x1,x2,r,i;
    19. cout<<fixed<<setprecision(2);
    20. if (judge > 0) {
    21. x1=(-b + sqrt(judge)) / (2 * a);
    22. x2=(-b - sqrt(judge)) / (2 * a);
    23. cout.precision(2);
    24. cout << "x1=" << x1;
    25. cout.precision(2);
    26. cout << " x2=" << x2<< endl;
    27. } else if (judge == 0) {
    28. cout.precision(2);
    29. x1=-b / (2 * a);
    30. cout<< "x1=x2=" << x1 << endl;
    31. } else {
    32. r=-b/(2*a);
    33. i=sqrt(-judge)/(2*a);
    34. cout.precision(2);
    35. cout << "x1=" << r<<'+'<<i;
    36. cout.precision(2);
    37. cout << "i x2=" << r<<-i<< 'i' << endl;
    38. }
    39. }
    40. };
    41. int main() {
    42. double t, a, b, c;
    43. cin >> t;
    44. while (t--) {
    45. cin >> a >> b >> c;
    46. Equation equation(a, b, c);
    47. equation.getRoot();
    48. }
    49. }

    思路分析

    主要是格式控制问题,隔了几个月,有点忘记了,想用成员函数cout流的格式控制,一开始用的是cout.precision(2),后来发现这个只能控制位宽,还是用cout<

  • 相关阅读:
    图解LeetCode——640. 求解方程(难度:中等)
    linux查看网卡型号和驱动信息
    mysql存储引擎
    MySQL索引的类型有哪些?
    前端图片压缩解决办法
    Pytest系列-数据驱动@pytest.mark.parametrize(7)
    Vue 3编译器的新特性
    【一刷《剑指Offer》】面试题 9:斐波那契数列(扩展:青蛙跳台阶、矩阵覆盖)
    计算机网络_03_tcp/ip四层模型
    尤雨溪对 2022 Web前端生态趋势是这样看的
  • 原文地址:https://blog.csdn.net/weixin_62264287/article/details/126752872