c语言输入坐标判断位置,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
編了兩天了,沒弄出來
參考程序(錯):
#include
#define?N?4
int?tt(double?p[][2],int?a,int?b)
{
int?temp[N],k=0;
double?t;
for(int?i=0;i
{
if(i==a||i==b)
{
continue;
}
t=p[i][0]*(p[b][1]-p[a][1])+(p[a][0]-p[b][0])*p[i][1]-p[a][0]*p[b][1]+p[b][0]*p[a][1];
if(t==0)
return?0;
else
if(t>0)
temp[k++]=1;
else
temp[k++]=-1;
}
for(int?j=1;j
{
if(temp[0]!=temp[j])?return?0;
}
return?1;
}
int?real(double?p[][2])
{
int?flag[N],m=0;
for(int?i=0;i
{
flag[i]=0;
}
for(?i=0;i
{
for(int?j=1;j
{
if(flag[j])?continue;
if(tt(p,m,j))
{
flag[m]=1;
m=j;
break;
}
}
}
flag[m]=1;
for(i=0;i
{
if(flag[i]==0)
return?0;
}
if(tt(p,0,m))?return?1;
return?0;
}
void?main()
{
double?p[N][2];
char?ch='y';
while?(ch=='y'||ch=='Y')
{
printf("請輸入這N個點坐標:\n");
for(int?i=0;i
{
ptintf("第%d個點坐標",i);
scanf("%d?%d",&p[i][0],&p[i][1]);
printf("%d,%d\n",p[i][0],p[i][1]);
}
if?(real(p))
ptintf("能");
else
ptintf("不能");
ptintf("\n是否繼續判斷?(繼續請輸入y&Y)");
scanf("%d",&ch);
}
}
總結
以上是生活随笔為你收集整理的c语言输入坐标判断位置,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取浏览器屏幕高度(js,jq) - 进
- 下一篇: unzip 命令巧用举例