c语言编程,定义一个结构体表示点的x,y坐标,依次读入三个正形坐标值,输出三个点构成的三角形面积

要求保留两位小数。
先利用两点间距离公式求出三角形三边的边长a, b, c。然后用海伦公式计算面积,S=sqrt(p(p-a)(p-b)(p-c)),其中sqrt表示开平方运算,p=(a+b+c)/2为三角形周长的一半。计算开平方运算时可调用C语言库函数sqrt,包含math.h。
例如:
输入:
0 1
2 2
4 5
输出:
2.00
急求,谢谢!

#include<stdio.h>
#include<math.h>
typedef struct pair{
int x;
int y;
}pair;
float fun(pair a,pair b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main(){
pair k[3];
int i;float a,b,c,p,s;
for(i=0;i<3;i++) scanf("%d%d",&k[i].x,&k[i].y);
a=fun(k[0],k[1]);
b=fun(k[1],k[2]);
c=fun(k[0],k[2]);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.2f",s);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答