坐标 用海伦公式求三角形面积

img

img


这个代码运行结果不对,有什么问题吗,求解

#include<stdio.h>
#include<math.h>
int main() {
    int a,b,c,d,e,f;
    double d1,d2,d3,p,s;
    scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
    d1=sqrt((a-c)*(a-c)+(b-d)*(b-d));
    d2=sqrt((a-e)*(a-e)+(b-f)*(b-f));
    d3=sqrt((e-c)*(e-c)+(f-d)*(f-d));
    if(d1+d2>d3&&d1+d3>d2&&d3+d1>d2){
        p=(d1+d2+d3)/2;
        s=sqrt(p*(p-d1)*(p-d2)*(p-d3));
        printf("%.0lf",s);
    }else{
        printf("错"); 
    }
    return 0;
}

数据类型要用double,用int的话前面有个1/2不都是0了吗