题目来源:http://pat.zju.edu.cn/contests/basic-programming/%E5%88%86%E6%94%AF-02
注:只想说,我去,当初就应该直接定义double型的,还有pow()函数,不懂不要乱用,精确度也是个问题。明明是想写个C++文件,为嘛最后貌似偏了呢~~
#include<stdio.h>
#include<math.h>
//#include<iostream>
#include<stdlib.h>
//using namespace std;
int main()
{double x1,y1,x2,y2,x3,y3;
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
double one,two,three;
one=sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
two=sqrt((x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1));
three=sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));
double l,a;
if((one+two)>three&&(one+three)>two&&(two+three)>one)
{l=one+two+three;
a=sqrt(0.5*l*(0.5*l-one)*(0.5*l-two)*(0.5*l-three));
printf("L = %.2f, A = %.2f\n",l,a);}
else printf("Impossible\n");
return 0;
}