判断一个多边形是否是凸多边形

一个很简单的问题看了好久,但就是提交不过,也看不出是哪出了问题

问题为:判断一个多边形是否是凸多边形

我的思路是这样的:
建立x[],y[]这两个数组用来存放坐标,计算两个向量,然后让计算它们的叉积,如果叉积小于零,说明后一个向量在前一个向量的右侧,即顺时针方向,只要有一个是这样的情况,则不符合条件。然后就是叉积大于零,符合条件,计数加一。等于零共线,直接跳过。最后,要是计数大于3,就说明是凸边形,因为三角形肯定是凸边形。

我觉得思路没啥问题呀,想不通

以下代码:
 

#include
#include 
using namespace std;
double eps = 1e-10;
int main(){
    int n;
	while(cin>>n){
		if(n==0){
			break;
		}
	
		double x[10000],y[10000];
		for(int i=1;i<=n;i++){
			cin>>x[i]>>y[i];
		}	
		if(n==1||n==2){
			cout<<"concave"<0){
				num++;
			//	cout<=3){
			cout<<"convex"<

终于想通了,哇哇哇哇哇哇,笨死

#include
#include 
using namespace std;
double eps = 1e-10;
int main(){
    int n;
	while(cin>>n){
		if(n==0){
			break;
		}
	
		double x[10000],y[10000];
		for(int i=1;i<=n;i++){
			cin>>x[i]>>y[i];
		}	
		if(n==1||n==2){
			cout<<"concave"<0){
				num++;
			//	cout<=3&&i==n){
				cout<<"convex"<

 

你可能感兴趣的:(计算几何)