水题一道.. 题目地址:http://www.bailian.openjudge.cn/practice/2624
#include<iostream>
#include<cstdio>
using namespace std;
struct Point{ //点
double x,y;
Point(double x,double y):x(x),y(y) {}
Point operator + (const Point& p){
return Point(x+p.x,y+p.y);
}
Point operator - (const Point& p){
return Point(x-p.x,y-p.y);
}
bool operator == (const Point& p){
return x==p.x&&y==p.y;
}
};
ostream& operator << (ostream &out,const Point& v){
printf("%.3lf %.3lf",v.x,v.y);
}
int main()
{
double x1,y1,x2,y2,x3,y3,x4,y4;
while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4)!=EOF){
Point a(x1,y1),b(x2,y2),c(x3,y3),d(x4,y4);
if(a==b) cout<<(c+d-a);
else if(a==c) cout<<(b+d-a);
else if(a==d) cout<<(c+b-a);
else if(b==c) cout<<(a+d-b);
else if(b==d) cout<<(a+c-b);
else if(c==d) cout<<(a+b-c);
cout<<endl;
}
return 0;
}