#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");
}
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,
如果构成三角形,返回面积,
#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;
}
忘了公式,悲剧的程序猿!