数学题,始终不懂为毛要用首尾顺次相接的向量来进行叉乘
稀里糊涂过了。。扔垃圾桶吧。。。
#include <stdio.h> int n; struct Tpoint { int x; int y; } a[100000]; struct Tvector { int x; int y; } b[100000]; int flag; int main() { while (scanf("%d",&n),n) { for(int i=0;i<n;i++) { scanf ("%d%d",&a[i].x,&a[i].y); } for (int i=0;i<n-1; i++) { b[i].x=a[i+1].x-a[i].x; b[i].y=a[i+1].y-a[i].y; } b[n-1].x=a[0].x-a[n-1].x; b[n-1].y=a[0].y-a[n-1].y; flag=1; for (int i=0; i<n-1; i++) { if((b[i].x)*b[i+1].y - b[i+1].x*(b[i].y) < 0) { flag=0; //printf("%d%d",a[i].x,a[i].y); break; } } if((b[n-1].x)*b[0].y - b[0].x*(b[n-1].y) < 0) flag=0; if(flag) printf("convex\n"); else printf("concave\n"); } }