输出含有#J是为什么

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
#include
#include
struct point{
    double x,y;
};
int main(void)
{
    struct point p[3];
    double a,b,c,s,l,k;
    int i;
    for(i=1;i<=3;i++) 
    {
        printf("输入点%d的坐标\n",i);
        scanf("%lf%lf",&p[i].x,&p[i].y);
    }
    a=pow((p[0].x-p[1].x)*(p[0].x-p[1].x)-(p[0].y-p[1].y)*(p[0].y-p[1].y),0.5);
    b=pow((p[1].x-p[2].x)*(p[1].x-p[2].x)-(p[1].y-p[2].y)*(p[1].y-p[2].y),0.5);
    c=pow((p[0].x-p[2].x)*(p[0].x-p[2].x)-(p[0].y-p[2].y)*(p[0].y-p[2].y),0.5);
    if((a+b<=c)||(a+c<=b)||(b+c<=a))
    {
        printf("Impossible!");
        return 0;
    }
    l=a+b+c;
    k=l/2.0;
    s=pow(k*(k-a)*(k-b)*(k-c),0.5);
    printf("周长为%.2lf   面积为%.2lf",l,s);
    
    return 0;

运行结果及报错内容

img

我想要达到的结果

输入三个点,为什么输出的面积和周长是这个样子的?


#include<stdio.h>
#include<math.h>
struct point{
    double x,y;
};
int main(void)
{
    struct point p[3];
    double a,b,c,s,l,k;
    int i;
    for(i=1;i<=3;i++) 
    {
        printf("输入点%d的坐标\n",i);
        scanf("%lf%lf",&p[i].x,&p[i].y);
    }
    a=pow((p[0].x-p[1].x)*(p[0].x-p[1].x)+(p[0].y-p[1].y)*(p[0].y-p[1].y),0.5);
    b=pow((p[1].x-p[2].x)*(p[1].x-p[2].x)+(p[1].y-p[2].y)*(p[1].y-p[2].y),0.5);
    c=pow((p[0].x-p[2].x)*(p[0].x-p[2].x)+(p[0].y-p[2].y)*(p[0].y-p[2].y),0.5);
    if((a+b<=c)||(a+c<=b)||(b+c<=a))
    {
        printf("Impossible!");
        return 0;
    }
    l=a+b+c;
    k=l/2.0;
    s=pow(k*(k-a)*(k-b)*(k-c),0.5);
    printf("周长为%.2lf   面积为%.2lf",l,s);
    
    return 0;
}

距离不应该是x的平方在加上y的平方再开根号?