hdu 2108叉积

http://acm.hdu.edu.cn/showproblem.php?pid=2108

代码如下:

#include"stdio.h"



int flag1,flag2,x[1005],y[1005];



void judge(int x1,int y1,int x2,int y2)

{

    if(x1*y2-x2*y1>0)

        flag1=1;

    else if(x1*y2-x2*y1<0)

        flag2=1;

}



int main( )

{

    int n,a,b,i;

    while(scanf("%d",&n)&&n!=0)

    {

        flag1=flag2=0;

        for(i=0;i<n;i++)

            scanf("%d%d",&x[i],&y[i]);

        x[n]=x[0];y[n]=y[0];//注意这里,应该每个节点都算方向的刚开始忽略了

        x[n+1]=x[1];y[n+1]=y[1];

        for(i=2;i<=n+1;i++)

        {

            a=x[i-1]-x[i-2];

            b=y[i-1]-y[i-2];

            judge(a,b,x[i]-x[i-1],y[i]-y[i-1]);

        }

        if(flag1==1&&flag2==1)

            printf("concave\n");

        else

            printf("convex\n");

    }

    return 0;

}

你可能感兴趣的:(HDU)