Description
已知平面上3个点的坐标,求这些点围成的三角形的面积。输入保证合法,且每个点的坐标都是整数,范围是 -1 000 000 ≤ x ≤ 1 000 000,-1 000 000 ≤ y ≤ 1 000 000。
Input
输入包含多组数据,每组数据占1行,每行分别列写三个点的坐标:(x0, y0), (x1, y1), (x2, y2),例如:
1 2 3 4 5 6
Output
对每组输入,如果输入为:
0 0 0 0 0 0
就直接退出程序,否则,输出这三个点围成的三角形的面积。为了避免浮点误差,输出时只要求输出整数部分,即在小数点之前截断(把小数点以及后面的数字都去掉,而不是四舍五入)。如果你的算法返回了负值,应该去掉负号。
Sample Input 1
0 0 1 0 1 1 1 1 3 1 2 2 0 0 0 0 0 0 Sample Output 1
0 1
#include <stdio.h> #include<math.h> int main() { long long x[3],y[3]; int i; while(1) { for(i=0;i<3;i++)scanf("%lld%lld",&x[i],&y[i]); if(x[0]==0&&y[0]==0&&x[1]==0&&y[1]==0&&x[2]==0&&y[2]==0)break; printf("%lld\n",abs((x[0]*y[1]+y[0]*x[2]+x[1]*y[2]-x[2]*y[1]-y[2]*x[0]-y[0]*x[1])/2)); } return 0; }