您的位置:首页 > 其它

NYOJ67三角形面积 VS NYOJ68三点顺序

2013-04-15 21:14 423 查看
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=67

                    http://acm.nyist.net/JudgeOnline/problem.php?pid=68

题目分析:三角形的面积其实就是三个点组成的两个向量的叉乘的绝对值。因为如果三个点以顺时针方向给出,那么求出来就是正的,如果是逆时针就是负的。为什么呢。因为叉乘有方向性,满足右手定律。

67题的代码:

#include<stdio.h>
#include<math.h>

int main()
{
int a[6];
double area;
while(scanf("%d %d %d %d %d %d",&a[0], &a[1], &a[2], &a[3], &a[4], &a[5]))
{
if(!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5])
break;
area = ((a[2] - a[0]) * (a[3] - a[5]) - (a[2] - a[4]) * (a[3] - a[1])) / 2.0;
printf("%.1lf\n",fabs(area));
}
return 0;
}


68题的代码:

#include<stdio.h>

int main()
{
int a[6];
double area;
while(scanf("%d %d %d %d %d %d",&a[0], &a[1], &a[2], &a[3], &a[4], &a[5]))
{
if(!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5])
break;
area = ((a[2] - a[0]) * (a[3] - a[5]) - (a[2] - a[4]) * (a[3] - a[1]));
if(area > 0.0)
printf("1\n");
else
printf("0\n");
}
return 0;
}另外,作为这两道题的延生,参看:http://blog.csdn.net/kay_zhyu/article/details/8805631
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: