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

来源:互联网 发布:网络推手阿建 编辑:程序博客网 时间:2024/06/05 06:16

题目链接: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");elseprintf("0\n");}return 0;}
另外,作为这两道题的延生,参看:http://blog.csdn.net/kay_zhyu/article/details/8805631