日系奥利奥 2022-11-01 10:00 采纳率: 84.2%
浏览 20
已结题

请指正一下。问题有点多。

#include
using namespace std;
class triangle
{private:double x;
double y;
double z;
public:triangle(double a,double b,double c)
{x=a;y=b;z=c;}
triangle();
void input()
{cin>>x>>y>>z;}
double area1()
{
if(x+y>z||x+z>y||y+z>x)
{ double s,p;
p=x+y+z;
s=sqrt((p-x)(p-y)(p-z));//海伦公式求三角形面积
return s;
}
else return 0;}
};
class three:public triangle
{private: double h,a,b,c;
public:three(double x,double y,double z,double d):triangle(x,y,z)
{h=d;}
three();
void input(){cout<<h;}
double area2(){return area1()*h;}
};
void main()
{ triangle t1;
t1.input();
cout<<t1.area1();
three t2;
t2.input();
cout<<t2.area2();
}

img

展开全部

  • 写回答

2条回答 默认 最新

  • JarodYv 人工智能领域优质创作者 2022-11-01 11:01
    关注

    你的代码存在2个问题:

    1. 面向对象编程语法不对;
    2. 海伦公式写的不对

    我都帮你改了,代码见下方:

    1. #include <iostream>
    2. #include <cmath>
    3. using namespace std;
    4. class triangle
    5. {
    6. protected:
    7. double x;
    8. double y;
    9. double z;
    10. public:
    11. triangle();
    12. ~triangle();
    13. triangle(double a, double b, double c);
    14. public:
    15. void input();
    16. double area1();
    17. };
    18. triangle::triangle()
    19. {
    20. }
    21. triangle::~triangle()
    22. {
    23. }
    24. triangle::triangle(double a, double b, double c)
    25. {
    26. x = a;
    27. y = b;
    28. z = c;
    29. }
    30. void triangle::input()
    31. {
    32. cin >> x >> y >> z;
    33. }
    34. double triangle::area1()
    35. {
    36. if (x + y > z || x + z > y || y + z > x)
    37. {
    38. double s, p;
    39. p = (x + y + z) / 2.0;
    40. s = sqrt(p * (p - x) * (p - y) * (p - z)); //海伦公式求三角形面积
    41. return s;
    42. }
    43. else
    44. return 0;
    45. }
    46. class three : public triangle
    47. {
    48. private:
    49. double h;
    50. public:
    51. three();
    52. ~three();
    53. three(double x, double y, double z, double d);
    54. public:
    55. void input();
    56. double area2();
    57. };
    58. three::three()
    59. {
    60. }
    61. three::~three()
    62. {
    63. }
    64. three::three(double x, double y, double z, double d) : triangle(x, y, z)
    65. {
    66. h = d;
    67. }
    68. void three::input()
    69. {
    70. triangle::input();
    71. cin >> h;
    72. }
    73. double three::area2() { return area1() * h; }
    74. int main()
    75. {
    76. triangle t1;
    77. t1.input();
    78. cout << t1.area1() << endl;
    79. three t2;
    80. t2.input();
    81. cout << t2.area2() << endl;
    82. return 0;
    83. }

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月2日
  • 创建了问题 11月1日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部