三棱体的表面积
定义结构体表示空间中的一个点,给出四个点的坐标,输出四个点所构成的三棱体的表面积,如果四个点在一个平面上,输出0。
输入有四行,每一行表示一个点的x、y、z坐标。输出0或者表面积(小数点后保留两个有效数字)
样例输入#1
0 0 0
0 0 1
0 1 0
1 0 0
样例输出#1
2.37
样例输入#2
1 0 0
1 1 0
1 1 1
1 0 1
样例输出#2
0
第一个样例的结果
两个样例都无法构成三棱体
所以,第二个是正确的。
# include <stdio.h>
# include <math.h>
int main(void)
{
float a, b, c, s, area,sum=0;
for (int i = 0; i < 4; i++)
{
printf("请输入三个边长(以Enter键结束每次输入):\n");
scanf("%f%f%f", &a, &b, &c); //变量输入
s = 1.0 / 2 * (a + b + c); //计算s
area= sqrt(s * (s - a) * (s - b) * (s - c)); //计算面积
sum = sum + area;
printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n", a, b, c, s);
printf("area=%7.2f\n", area); //显示结果
}
printf("sum=%7.2f\n", sum); //显示结果
return 0;
}