提示叉积:
代码如下:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
struct point
{
int x;
int y;
}a[50];
int fun(int i,int j,int k) //叉积
{
return (a[j].x-a[i].x)*(a[k].y-a[j].y)-(a[k].x-a[j].x)*(a[j].y-a[i].y);
}
int main()
{
int n;
bool flag;
while(cin>>n,n)
{
for(int i=0; i<n; i++)
cin>>a[i].x>>a[i].y;
for(int i=n; i<n+2; i++)
a[i].x=a[i-n].x,a[i].y=a[i-n].y;
for(int i=0; i<n; i++)
{
flag=0;
if(fun(i,i+1,i+2)<0)
{
flag=1;
break;
}
}
if(!flag)
puts("convex");
else
puts("concave");
}
return 0;
}