因為之前一直RE 試了其他方法
這個我覺得如果有錯也該是本來該被燒到而沒被燒到
但是卻是在不該被燒到的情況下被燒到了
-------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int gcd(int a, int b) //求最大公因數
{
if(a%b==0)return b;
return gcd(b, a%b);
}
int main()
{
int n;
scanf("%d",&n);
int i,j,g, dx,dy;
int x1[20],y1[20],x2[20],y2[20],x3[20],y3[20];
for(i=0;i<n;i++)
scanf("%d%d%d%d%d%d",&x1[i],&y1[i],&x2[i],&y2[i],&x3[i],&y3[i]);
for(i=0;i<n;i++)
{
dx=x2[i]-x1[i]; //方向向量
dy=y2[i]-y1[i];
if(dx!=0 && dy!=0)
{
g=gcd(dx,dy);
dx=dx/g; //互質方向向量
dy=dy/g;
}
else //有等於零的情形
{
if(dx==0)dy=dy/abs(dy);
else dx=dx/abs(dx);
}
for(j=1;j<=100;j++)
{
x1[i]+=dx;y1[i]+=dy; //移動
if(x1[i]==x3[i] && y1[i]==y3[i])
{printf("該死的東西!竟敢想讓我死!\n");break;}
if(x1[i]==x2[i] && y1[i]==y2[i])
{printf("父親大人!母親大人!我快到了!\n");break;}
}
}
return 0;
}
-----------------------------------------------------------------------------完
到底是怎麼回事