给,已经编译运行确认:
#include
#include
#include
int main()
{
float a,b,c;
float area,s;
printf("请输入三角行的三边:");
scanf("%f %f %f",&a,&b,&c);
if(a>0&&b>0&&c>0)
{
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
printf("\n这三边能组成三角形\n");
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("三角形的面积为: %f\n",area);
if(((a*a+b*b)==c*c)||((a*a+c*c)==b*b)||((c*c+b*b)==a*a))
printf("这是直接三角形\n");
else if((a==b)&&(a==c)&&(b==c))
printf("这是等边三角形\n");
else if((a==b)||(a==c)||(b==c))
printf("这是等腰三角形\n");
else printf("这是普通三角形\n");
}
else
printf("\n这三边不能组成三角形\n");
}
else
printf("\n输入错误!");
getch();
return 1;
}
首先判断是否能构成三角形
再根据公式直接求
具体步骤也是比较简-单的
好像有个公式
面积的平方=s(s-a)(s-b)(s-c),其中 s =(a+b+c)/2
应该没记错,知道公式,你做起来就简单了
开根号用sqrt函数
#include
#include
void main()
{
double a,b,c,s,area;
printf("input a,b,c:");
scanf("%lf,%lf,%lf",&a,&b,&c);
if (a+b>c && a+c>b && b+c>a)
{ s=(a+b+c)*0.5;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%6.2f",area);
}
else
printf("it is not a trilateral");
}