2009-04-04 14:33:02來源不明

飛蛾撲火(一)

5 / 3 修改

/**************************************************/

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,x1,x2,x3,y1,y2,y3;
while(scanf("%d",&a)==1)
  {
   for(b=0;b<a;b++)
    {
    scanf("%d %d %d %d %d %d",&x1,&y1,&x2,&y2,&x3,&y3);
     if((y2-y1)*(x3-x2)==(x2-x1)*(y3-y2)&&(((x3<x2&&x3>x1)||(x3<x1&&x3>x2))||((y3<y2&&y3>y1)||y3<y1&&y3>y2)))
      printf("該死的東西!竟敢想讓我死!\n");
    else
      printf("父親大人!母親大人!我快到了!\n");
    }
  }
return 0;
}

上一篇:反轉表

下一篇:飛蛾撲火(二)

computer 2009-05-03 00:01:11

不好意思請問一下,如果按照你的程式碼:

起點 3,3
終點 1,1
火點 2,2
的話.....

版主回應
其實這是朋友的程式碼的說`XD
非常感謝你的指證
已修改完畢
此點算是燒到
2009-05-03 09:37:29
Martin 2009-05-01 00:10:33

想請問一下我的問題出在哪裡?
http://pastebin.com/mf5fc43a
謝謝!

版主回應
我看到一堆亂碼 好 先不管亂碼
首先
if((x2-x1)==0&&(x3-x2)==0)
這是為了防止下面的/0問題吧
else if((y2-y1)/(x2-x1)==(y3-y2)/(x3-x2))
不過我想告訴你 這題的問題 不只有是斜率而已
如果要燒到的話 必須在兩點之間 (重點!!)
斜率的話 只能說與這兩點共線
還有你把有/的交叉相乘就可以避免了...
以上 參考 不懂再問
2009-05-01 17:49:06