帮忙解释一下c++代码,急啊!

[复制链接]
查看11 | 回复2 | 2010-6-4 10:11:12 | 显示全部楼层 |阅读模式
#include
#define N 4//注意这一步,确定输入几个点的。。。改数字就好
int tt(int p[][2],int a,int b)
{
int temp[N],k=0;
int t;
int i;
int j;
for(i=0;i0)
temp[k++]=1;
else
temp[k++]=-1;
}
for(j=1;j<k;j++)
{
if(temp[0]!=temp[j]) return 0;
}
return 1;
}
int real(int p[][2])
{
int flag[N],m=0;
int i,j;
for(i=0;i<N;i++)
{
flag=0;
}
for( i=0;i<N;i++)
{
for(j=1;j<N;j++)
{
if(flag[j]) continue;
if(tt(p,m,j))
{
flag[m]=1;
m=j;
break;
}
}
}
flag[m]=1;
for(i=0;i<N;i++)
{
if(flag==0)
return 0;
}
if(tt(p,0,m)) return 1;
return 0;
}
void main()
{
int p[N][2];
int i;
printf("请输入这N个点坐标:\n");
for(i=0;i<N;i++)
{
printf("第%d个点坐标:",i+1);
scanf("%d,%d",&p[0],&p[1]);
printf("%d,%d\n",p[0],p[1]);
}
if (real(p))
printf("能");
else
printf("不能");
}
题目是输入N个店的坐标,判断这N个点能否构成一个凸多边形

回复

使用道具 举报

千问 | 2010-6-4 10:11:12 | 显示全部楼层
/*多边形由在同一平面且不在同一直线上的三条或三条以上的线段首尾顺次连结且不相交所组成的封闭图形图形叫做多边形(简述:由三条或三条以上的线段首位顺次连接所组成的封闭图形叫做多边形)凸多边形所谓凸多边形,就是把一个多边形任意一边向两方无限延长成为一条直线,如果多边形的其他各边均在此直线的同旁,那么这个多边形就叫做凸多边形,也可以理解为通过凸多边形的任意一条边作平面,并与此多边形所在的平面相异,那么凸多边形的其他所有部分都在所作平面的同一侧。问题输入二维坐标平面上的N个不同的点,判断这N个点能否构成一个凸多边形分析1、由N平面上的N个不同的点构成一个多边形,则必须满足:条件(1)任意一个点都必须是两条线段的端
回复

使用道具 举报

千问 | 2010-6-4 10:11:12 | 显示全部楼层
我晕哦,都是很简单的代码啊,太多了,你具体说哪里不懂吧!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行