一開始吃了個WA以為是邏輯錯誤,原來是我沒搞懂題目,看了Lucky貓才知道:
第一個邊的2個點中必定有一個點與第二個邊的2個點其中之一相同。
#include <stdio.h>
int main(void)
{
double x[4], y[4], temp;
int i, j, jmp;
while (scanf("%lf%lf%lf%lf%lf%lf%lf%lf",
&x[0], &y[0], &x[1], &y[1], &x[2], &y[2], &x[3], &y[3]) == 8)
{
jmp = 0;
for (i = 0; i < 2; i++)
{
for (j = 2; j < 4; j++)
if (x[i] == x[j] && y[i] == y[j])
{
jmp = 1;
break;
}
if (jmp)
break;
}
temp = x[1], x[1] = x[i], x[i] = temp;
temp = y[1], y[1] = y[i], y[i] = temp;
temp = x[2], x[2] = x[j], x[j] = temp;
temp = y[2], y[2] = y[j], y[j] = temp;
printf("%.3f %.3f\n", x[0]+x[3]-x[1], y[0]+y[3]-y[1]);
}
return 0;
}
沒有留言:
張貼留言