一、算法分析:
1、 输入三条边,a,b,c;
2、 判断是否可以构成三角形。 可以利用三角形两边之和必然大于第三边的定理进行判断;
3、 对于可以构成三角形的,三边相加求周长,并利用海伦公式求面积;
海伦公式为
式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。
4、 输出周长和面积。
二、参考代码:
#include
#include
int main()
{
double a,b,c,C,S,p;
scanf("%lf%lf%lf",&a,&b,&c);//输入三条边。
if(a+b>c && b+c>a && a+c>b)//可以构成三角形。
{
C=a+b+c;//计算周长。
p=C/2;//计算半周长。
S=sqrt(p*(p-a)*(p-b)*(p-c));//套用海伦公式,计算面积。
printf("周长=%lf\n面积=%lf\n", C, S);//输出结果。
}
else
printf("无法构成三角形\n");//不能构成三角形,输出提示。
return 0;
}
以下答案仅供参考:
输入三条边,a,b,c;
判断是否可以构成三角形。 可以利用三角形两边之和必然大于第三边的定理进行判断;
对于可以构成三角形的,三边相加求周长,并利用海伦公式求面积;
海伦公式为
式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。
输出周长和面积
....................s*(s-a)(s-b)(s-c)各个括号之间的*号怎么不写。。。。
#include
#include
int
main()
{
double
a,b,c,s,c,area;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
c=a+b+c;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%f\tb=%f\tc=%f\n",a,b,c);
printf("area=%f\n",area);
printf("c=%f\n",c);
return
0;
}
a,b,c可以改,但两边之和大于第三边,两边之差小于第三边是不能丢的