三角形面积
Time Limit:1000MS Memory Limit:65536K
Total Submit:179 Accepted:105
Description
给你三个点,表示一个三角形的三个顶点,现你的任务是求出该三角形的面积
Input
每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示三个点的横纵坐标。(坐标值都在0到10000之间)
输入0 0 0 0 0 0表示输入结束
测试数据不超过10000组
Output
输出这三个点所代表的三角形的面积,结果精确到小数点后1位(即使是整数也要输出一位小数位)
Sample Input
0 0 1 1 1 3
0 1 1 0 0 0
0 0 0 0 0 0
Sample Output
1.0
0.5
Source
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AK1177 {
class Program {
static void Main(string[] args) {
string sb;
while ((sb = Console.ReadLine()) != null) {
string[] s = sb.Split();
int[] a = new int[6];
for (int i = 0; i < 6; i++)
a[i] = int.Parse(s[i]);
if (a[0] + a[1] + a[2] + a[3] + a[4] + a[5] == 0) break;
double b = Math.Sqrt((a[3] - a[1]) * (a[3] - a[1]) + (a[2] - a[0]) * (a[2] - a[0]));
double c = Math.Sqrt((a[5] - a[3]) * (a[5] - a[3]) + (a[4] - a[2]) * (a[4] - a[2]));
double d = Math.Sqrt((a[5] - a[1]) * (a[5] - a[1]) + (a[4] - a[0]) * (a[4] - a[0]));
double q = (b + c + d) / 2;
double area = Math.Sqrt(q * (q - b) * (q - c) * (q - d));
Console.WriteLine(area.ToString("0.0"));
}
}
}
}