注册 登录
编程论坛 C++教室

从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积;如不能,则输出不能构成三角形的信息。

a4869696 发布于 2009-11-12 14:51, 13689 次点击
从键盘输入三角形的三条边长,判断是否构成三角形,如能则求出三角形的周长和面积;如不能,则输出不能构成三角形的信息。
构成三角形的条件是:三角形的任意两边之和大于第三边时,构成三角形。
面积计算公式:
其中,f1, f2, f3是三角形的三条边长,t=(f1+f2+f3)/2。计算一个数的平方根可用函数sqrt,该函数是数学库函数,需要在程序开头加上#include “math.h”
7 回复
#2
cookies50002009-11-12 15:35
#include<iostream>
#include<cmath>
using namespace std;

int main(){

    double a,b,c,s,perimeter,p;                //a,b,c是三边,s是面积,perimeter是周长;
   
    cin>>a>>b>>c;
   
    if(((a+b)>c) && ((b+c)>a )&& ((a+c)>b))
    {
        perimeter=a+b+c;
        p=perimeter/2.0;
        s=sqrt(p*(p-a)*(p-b)*(p-c));
        cout<<"三角形的周长是: "<<perimeter<<endl;
        cout<<"三角形的面积是: "<<s<<endl;

    }
    else
        cout<<"不能构成三角形,回家玩吧。…………*_*"<<endl;

    return 0;

}
#3
cookies50002009-11-12 15:36
vc6环境编译通过。
#4
一旋无风2009-11-12 17:29
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
double a,b,c,s,per,t;                //a,b,c是三边,s是面积,per是周长;
    cin>>a>>b>>c;
    if(((a+b)>c) && ((b+c)>a )&& ((a+c)>b))

    {
        per=a+b+c;
        t=per/2.0;
        s=sqrt(t*(t-a)*(t-b)*(t-c));
        cout<<"三角形的周长是: "<<per<<endl;
        cout<<"三角形的面积是: "<<s<<endl;

    }
    else
        cerr<<"不能构成三角形"<<endl;
}
#5
flyingcloude2009-11-13 12:46
程序代码:
#include<iostream>
#include<cmath>
using namespace std;

int main(){

    double a,b,c,s,perimeter,p;                //a,b,c是三边,s是面积,perimeter是周长;
   
    cin>>a>>b>>c;
   
    if(((a+b)>c) && ((b+c)>a )&& ((a+c)>b))
    {
        perimeter=a+b+c;
        p=perimeter/2.0;
        s=sqrt(p*(p-a)*(p-b)*(p-c));
        cout<<"三角形的周长是: "<<perimeter<<endl;
        cout<<"三角形的面积是: "<<s<<endl;

    }
    else
        cout<<"不能构成三角形,回家玩吧。…………*_*"<<endl;

    return 0;

}


程序代码:
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
double a,b,c,s,per,t;                //a,b,c是三边,s是面积,per是周长;
    cin>>a>>b>>c;
    if(((a+b)>c) && ((b+c)>a )&& ((a+c)>b))

    {
        per=a+b+c;
        t=per/2.0;
        s=sqrt(t*(t-a)*(t-b)*(t-c));
        cout<<"三角形的周长是: "<<per<<endl;
        cout<<"三角形的面积是: "<<s<<endl;

    }
    else
        cerr<<"不能构成三角形"<<endl;
}

试试这组测试数据:0.1 0.2 0.3
#6
一旋无风2009-11-14 02:12
回复 5楼 flyingcloude
欠考虑了,谢谢提醒
#7
chejinhai2009-11-15 13:07
加个CATCH机制吧
#8
天之抉子2009-11-15 18:43
回复 6楼 一旋无风
我仔细对比了两个编码,但是我没有看出差别来。
请问在哪里需要再考虑啊。
1