输入一个三角形的三边求周长和面积

时间:2022-12-07 14:16:09

这道题唯一一个难点就是求面积求面积方式有两种一种就是海伦公式还有一种就是三斜求积术

我们先来第一种海伦公式这里的p就是周长的一半

输入一个三角形的三边求周长和面积

#include<stdio.h>
#include<math.h>
int man()
{
int a,b,c;//因为我这里设置三边的形式为整型所以要输入整型若要带有小数只要换类型即可
scanf("%d%d%d",&a,&b,&c);//若换了类型这里也要换输入类型
float sum,s;
sum=a+b+c;
float t;
t=sum/2*(sum/2-a)*(sum/2-b)*(sum/2-c);
s=sqrt(t);//这里的sqrt就是对t开根号但要使用这个函数我们必须加一个头文件即math.h。除此之外sqrt函数括号里的t只能为浮点型
printf("%.2f\n%.2f"sum,s);//这里的%.2f即输出带有两位小数的值
return 0;
}

运行结果如图

输入一个三角形的三边求周长和面积

接下来我们使用三斜求积术

输入一个三角形的三边求周长和面积

#include<stdio.h>
#include<math.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
float t,s;
t = (c*c*a*a - ((c*c + a*a - b*b) / 2)*((c*c + a*a - b*b) / 2)) / 4;
s = sqrt(t);
printf("%.2f", s);
return 0;
}

运行结果如图

输入一个三角形的三边求周长和面积

对于这两种方法我们还可以加入调用函数的方法

#include<stdio.h>
#include<math.h>
float fun(float x, float y, float z)
{
float j,m,c;
j = (x + y + z) / 2;
m = j*(j - x)*(j - y)*(j - z);
c = sqrt(m);
return c;
}
int main()
{
float a, b, c;
float s;
scanf("%f%f%f", &a, &b, &c);
s = fun(a, b, c);
printf("%.2f", s);
return 0;
}

运行结果如图一