c++语言 输入三角形三边a,b,c.判断是否能够构成三角形,如果能构成三角形,通过海伦公式,计算其面积

在线等,速度
2025-04-24 19:46:55
推荐回答(4个)
回答1:

#include "stdio.h"
#include "math.h"
main()

/*定义变量*/
float a,b,c;
float s,area;
/*输入三角形的三边*/
printf("a,b,c=");
scanf("%f,%f,%f",&a,&b,&c);
/*判定可否组成三角形*/
if(a+b>c&&a+c>b&&b+c>a)
{ /*计算并输出三角形面积*/
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
/*判定三角形的类型*/
if(a==b&&b==c)
printf("等边三角形\n");
else if (a==b||b==c||a==c)
printf("等腰三角形\n");
else if (a*a+b*b==c*c||a*a+c*c=b*b||b*b+c*c=a*a)
printf("直角三角形\n");
else
printf("一般三角形\n");

else
printf("不能组成三角形\n");

回答2:

double areahellen(double a, double b, double c) {
if(a+b<=c) return 0;
if(b+c<=a) return 0;
if(c+a<=b) return 0;

double s;
s=(a+b+c)/2;
return ( sqrt(s(s-a)(s-b)(s-c)) );
}

我没判断a,b,c,是否大于0什么的,只是验证三边是否构成三角形,
如果不构成三角形,返回0,
如果构成三角形,返回面积,

回答3:

#include
#include
using namespace std;

bool istriangle( int a, int b, int c )
{
return a > 0 && b > 0 && c > 0 && a + b > c && a + c > b &&
b + c > a && abs(a - b) < c && abs(a - c) < b && abs(b - c) < a;
}

double triangle_area( int a, int b, int c )
{
double p = ( a + b + c ) / 2.0;
return sqrt( p * ( p - a ) * (p - b) * (p - c));

}

int main()
{
int a, b, c;
// 输入各边长度
cin >> a >> b >> c;
double area = 0;
if( istriangle(a, b, c))
area = triangle_area(a, b, c);
else
cout << "不是三角形!" << endl;

return 0;
}

回答4:

忘了公式,悲剧的程序猿!