问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
#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;
运行结果及报错内容
我想要达到的结果
输入三个点,为什么输出的面积和周长是这个样子的?