charles123a 2016-09-29 14:21 采纳率: 80%
浏览 1261

C++关于类输出后的结果问题

#include
#include
using namespace std;
class Triangle
{
public:
Triangle(float a,float b,float c,float d,float e,float f);
void GetArea();
void GetPerimeter();
void panding();
void Show();
void Set(float a,float b,float c,float d,float e,float f);
private:
float x1; float y1;
float x2; float y2;
float x3; float y3;
};
Triangle::Triangle(float a,float b,float c,float d,float e,float f)
{
cout<<"constructing..."<<endl;
x1=a; y1=b;
x2=c; y2=d;
x3=e; y3=f;
}
void Triangle::GetArea()
{
float area,h,AB,AC,BC;

AB=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
AC=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
BC=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));

if(AB+AC>BC||AB+BC>AC||AC+BC>AB)
{
    cout<<"可构成三角形"<<endl;
    h=(1/2)*(AB+AC+BC);
    area=sqrt(h*(h-AB)*(h-AB)*(h-BC));
    cout<<"面积="<<area<<endl;
}
else
    cout<<"不能构成三角形,无法计算面积"<<endl;

}
void Triangle::GetPerimeter()
{
float per,AB,AC,BC;

AB=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
AC=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
BC=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));

if(AB+AC>BC||AB+BC>AC||AC+BC>AB)
{
    per=AB+AC+BC;
    cout<<"周长="<<per<<endl;
}
else
    cout<<"不能构成三角形,无法计算周长"<<endl;

}
void Triangle::Set(float a,float b,float c,float d,float e,float f)
{
x1=a; y1=b;
x2=c; y2=d;
x3=e; y3=f;
}
void Triangle::Show()
{
cout<<"坐标为:"< cout }
void main()
{
float a1,b1,c1,d1,e1,f1;
cin>>a1>>b1>>c1>>d1>>e1>>f1;
Triangle Triangle1(a1,b1,c1,d1,e1,f1);
cout<<"Triangle 1"< Triangle1.Show();
Triangle1.GetArea();
Triangle1.GetPerimeter();
float a2,b2,c2,d2,e2,f2;
cin>>a2>>b2>>c2>>d2>>e2>>f2;
Triangle1.Set(a2,b2,c2,d2,e2,f2);
cout<<"Triangle 2"<<endl;
Triangle1.Show();
Triangle1.GetArea();
Triangle1.GetPerimeter();

}

程序可以运行,但是在GetArea()中,为什么输出的面积结果为0,已经是float型了,但输出结果都是0,这个问题怎么解决?

  • 写回答

3条回答 默认 最新

  • 对方感受到 2016-09-29 14:37
    关注

    将h=(1/2) 中的1/2改为0.5, 因为1/2的结果是0,计算机是按照整形处理这个结果的

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能