第五周 项目1-当输入的三条边不能构成三角形时 ,输出:

/*
  当输入的三条边不能构成三角形时(即不满足两边之和大于第三边,
  两边之差小于第三边),输出为‘nan"

*/
#include <iostream>
#include <cmath>
using namespace std;

class Triangle
{
public:
        void showMessage();
        Triangle (double x,double y,double z);
        Triangle();
        double  perimeter(void );
        double area(void);

private:
       double  a,b,c;

};
Triangle ::Triangle()
{
    a=1;
    b=1;
    c=1;
}

Triangle::Triangle(double x,double y,double z)
{

    a=x;
    b=y;
    c=z;
}


double Triangle::perimeter(void)
{
     double l;
     l=a+b+c;
     return l;
 }
 double Triangle:: area(void)
 {
     double  p,s;
     p=(a+b+c)/2;
     s=sqrt(p*(p-a)*(p-b)*(p-c));
     return s;
 }
 void Triangle::showMessage()
{
    cout<<"该三角形的三条边为:"<<'\t'<<a<<'\t'<<b<<'\t'<<c<<endl;
    cout<<"                                                "<<endl;
    cout<<"该三角形的周长为:"<<'\t'<<perimeter()<<endl;
    cout<<"                                                "<<endl;
    cout<<"该三角形的面积为:"<<'\t'<<area();

}
int main()
{
    Triangle  t1;
    t1.showMessage ();
    cout<<"                           " <<endl;
    Triangle t2(3,2,44);
    cout<<"                           "<<endl;
    t2.showMessage ();
    return 0;
}

### 回答1: 答案:以下是判断三角形是否合法并计算面积的代码: #include <iostream> #include <cmath> using namespace std; int main() { double a, b, c; cin >> a >> b >> c; if (a + b > c && a + c > b && b + c > a) { double p = (a + b + c) / 2; double area = sqrt(p * (p - a) * (p - b) * (p - c)); cout << area << endl; } else { cout << "Data Error" << endl; } return 0; } 如果输入的三个数能构成合法的三角形,则输出三角形的面积,否则输出 "Data Error"。 ### 回答2: 首先,判断三条边能否构成合法的三角形有一个常用的定理,即三角形两边之和大于第三边。那么,我们可以先根据输入边长判断其是否构成合法的三角形。 假设输入三条边长度分别为a、b、c,根据定理,我们有以下判断条件: 1. a+b>c 2. a+c>b 3. b+c>a 若以上三个条件均满足,则说明三条边能构成合法的三角形。接下来,我们要计算三角形的面积,可以使用海伦公式,即 s = (a + b + c) / 2,其中 s 为半长。然后,三角形的面积可以通过公式 S = √(s * (s - a) * (s - b) * (s - c)) 计算得出。 如果输入三条边无法构成合法的三角形,那么就输出"Data Error"。 以下是根据以上思路编写的一个函数示例: def triangle_area(a, b, c): if a + b > c and a + c > b and b + c > a: s = (a + b + c) / 2 area = (s * (s - a) * (s - b) * (s - c)) ** 0.5 return area else: return "Data Error" 使用该函数,传入参数为三个边长,如果返回的不是"Data Error",则为合法三角形的面积;如果返回的是"Data Error",则三条不能构成合法的三角形。 ### 回答3: 三条边能否构成合法的三角形,需要满足两个条件:任意两边之和大于第三边,任意两边之差小于第三边。 根据题目中的输入形式,我们可以将边长1、边长2、边长3分别赋值为a、b和c。 首先,我们可以判断是否满足a + b > c、a + c > b和b + c > a这三个条件,如果满足则可以构成合法的三角形。 接下来,我们可以根据海伦公式计算三角形的面积。 海伦公式:设三角形三条边为a、b、c,p为半长(即p = (a + b + c) / 2),则三角形的面积S可通过以下公式计算:S = √(p * (p - a) * (p - b) * (p - c))。 如果满足构成合法的三角形的条件,我们可以计算三角形的面积,并将结果进行输出。 如果输入边长无法构成合法的三角形,即不满足a + b > c、a + c > b和b + c > a的条件,我们可以输出"Data Error"表明输入数据有误。 总结起来,我们可以按照以下伪代码实现该问题: 1. 读入边长1、边长2和边长3,并赋值为a、b和c。 2. 判断是否满足构成合法三角形的条件。 3. 如果满足条件,计算三角形的面积。 4. 输出计算的结果。 5. 如果不满足条件,输出"Data Error"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值