| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:水题,貌似木有边界情况诶In Reply To:水题,貌似木有边界情况诶 Posted by:KatrineYang at 2016-09-12 13:03:29 > #include <iostream>
> #include <stdio.h>
> #include <cmath>
> using namespace std;
>
> double det(double x11, double x12, double x13, double x21, double x22, double x23, double x31, double x32, double x33){
> return x11*x22*x33 + x12*x23*x31 + x13*x21*x32 - x13*x22*x31 - x12*x21*x33 - x11*x23*x32;
> }
>
> void print(double c, double d, double e, double h, double k, double r){
> char signC = (c>=0) ? '+' : '-';
> char signD = (d>=0) ? '+' : '-';
> char signE = (e>0) ? '+' : '-';
> char signH = (h>0) ? '+' : '-';
> char signK = (k>0) ? '+' : '-';
> printf("(x %c %.3lf)^2 + (y %c %.3lf)^2 = %.3lf^2\nx^2 + y^2 %c %.3lfx %c %.3lfy %c %.3lf = 0\n\n", signH, abs(h), signK, abs(k), abs(r), signC, abs(c), signD, abs(d), signE, abs(e));
> }
>
> int main() {
> double x1, y1, x2, y2, x3, y3;
> while(scanf("%lf%lf%lf%lf%lf%lf", &x1,&y1,&x2,&y2,&x3,&y3) == 6){
> double r1 = -x1*x1-y1*y1, r2 = -x2*x2-y2*y2, r3 = -x3*x3-y3*y3;
> double fm = det(x1,y1,1.0,x2,y2,1.0,x3,y3,1.0);
> double c,d,e,h,k,r;
> c = det(r1,y1,1.0,r2,y2,1.0,r3,y3,1.0)/fm;
> d = det(x1,r1,1.0,x2,r2,1.0,x3,r3,1.0)/fm;
> e = det(x1,y1,r1,x2,y2,r2,x3,y3,r3)/fm;
> h = c/2.0;
> k = d/2.0;
> r = sqrt(h*h+k*k-e);
> print(c,d,e,h,k,r);
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator