将下面代码给定输入3 3 4 3 4,为什么输出结果是0(或是乱码)?)该如何修改(对应的正确输出28.27 12.00 6.00
#include <iostream>
using namespace std;
class Shape
{
public:
virtual double Area() = 0;
};
class Circle :public Shape
{
public:
double Area()
{
return 3.1415926 * m_R *m_R;
}
int m_R = 0;
};
class Rectangle : public Shape
{
public:
double Area()
{
return m_W *m_L;
}
int m_W,m_L = 0;
};
class Triangle : public Shape
{
public:
double Area()
{
return 0.5*m_B*m_H;
}
int m_B,m_H = 0;
};
int main()
{
Circle circle;
Rectangle rectangle;
Triangle triangle;
scanf("%d %d %d %d %d",&circle.m_R,&rectangle.m_W,&rectangle.m_L,&triangle.m_B,&triangle.m_H);
Circle *c = new Circle;
printf("%f\n",c->Area());
delete c;
Rectangle *r = new Rectangle;
printf("%f\n",r->Area());
delete r;
Triangle *t = new Triangle;
printf("%f\n",t->Area());
delete t;
}