Go: package main

import (
	"fmt"
	"math"
)

func main() {
	n := scanInt()
	for i := 0; i < n; i++ {
		circleTriangle()
	}
}

func scanInt() int {
	var n int
	fmt.Scanf("%d", &n)
	return n
}

func circleTriangle() {
	var x1, y1, x2, y2, x3, y3 float64
	fmt.Scanf("%f%f%f%f%f%f", &x1, &y1, &x2, &y2, &x3, &y3)
	a := 2 * (x1 - x2)
	b := 2 * (y1 - y2)
	c := 2 * (x1 - x3)
	d := 2 * (y1 - y3)
	e := x1*x1 - x2*x2 + y1*y1 - y2*y2
	f := x1*x1 - x3*x3 + y1*y1 - y3*y3

	px := (d*e - b*f) / (a*d - b*c)
	py := (a*f - c*e) / (a*d - b*c)

	r := math.Sqrt((x1-px)*(x1-px) + (y1-py)*(y1-py))
	fmt.Printf("%.3f %.3f %.3f\n", px, py, r)
}

C++: #include <iostream>
#include <cmath>

using namespace std;

struct point{
    double x;
    double y;
};

int main(){
    int n;
    struct point points[3];

    cin>>n;
    for (int j = 0; j < n; ++j) {
        double s,a,b,c;
        for (int i = 0; i < 3; ++i) {
            cin >> points[i].x >> points[i].y;
        }
        a  = sqrt(pow(points[0].x-points[1].x,2)+pow(points[0].y-points[1].y,2));
        b  = sqrt(pow(points[1].x-points[2].x,2)+pow(points[1].y-points[2].y,2));
        c  = sqrt(pow(points[2].x-points[0].x,2)+pow(points[2].y-points[0].y,2));
        s  = (a+b+c)/2;
        printf("%.3f %.3f %.3f\n",
               ((points[0].y - points[2].y)*(pow(points[0].y,2) - pow(points[1].y,2) + pow(points[0].x,2) - pow(points[1].x,2)) - (points[0].y - points[1].y)*(pow(points[0].y,2) - pow(points[2].y,2) + pow(points[0].x,2) - pow(points[2].x,2))) / (2*(points[0].y - points[2].y)*(points[0].x - points[1].x) - 2*(points[0].y - points[1].y)*(points[0].x - points[2].x))+5e-5,
               ((points[0].x - points[2].x)*(pow(points[0].x,2) - pow(points[1].x,2) + pow(points[0].y,2) - pow(points[1].y,2)) - (points[0].x - points[1].x)*(pow(points[0].x,2) - pow(points[2].x,2) + pow(points[0].y,2) - pow(points[2].y,2))) / (2*(points[0].x - points[2].x)*(points[0].y - points[1].y) - 2*(points[0].x - points[1].x)*(points[0].y - points[2].y))+5e-5,
               a*b*c/(4*sqrt(s*(s-a)*(s-b)*(s-c)))+5e-5
        );
    }
    return 0;
}

C++: #include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <algorithm>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <cmath>
#include <cassert>

using namespace std;

#define all(c) ((c).begin()), ((c).end())
#define debug(c) cerr << "> " << #c << " = " << (c) << endl;
#define iter(c) __typeof((c).begin())
#define tr(i, c) for (iter(c) i = (c).begin(); i != (c).end(); i++)
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define REP(i, a, b) for (int i = (int)(a); i <= (int)(b); i++)

#define mp make_pair
#define fst first
#define snd second
#define pb push_back


const double EPS = 1e-10;


typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef complex<double> P;


inline double inp(const P &a, const P &b) {
	return (conj(a) * b).real();
}

inline double outp(const P &a, const P &b) {
	return (conj(a) * b).imag();
}

P circumc(const P &a, const P &b, const P &c) {
	return (a + b - (inp(c - b, a - c) / outp(b - a, c - b)) * (b - a) * P(0, 1)) / 2.0;
}

int main(){
	int n; cin >> n;
	while (n--) {
		double x1, y1, x2, y2, x3, y3; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
		P p1(x1, y1), p2(x2, y2), p3(x3, y3);
		P c = circumc(p1, p2, p3);
		printf("%.3f %.3f %.3f\n", c.real(), c.imag(), abs(p1 - c));
	}
	return 0;
}

C++: #include <iostream>
#include <cmath>
#include <cstdio>

int main()
{
	int n;
	std::cin >> n;
	for(int i = 0; i < n; ++i)
	{
		double x1,y1,x2,y2,x3,y3;
		std::cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;

		double const a = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));	
		double const b = sqrt((x3-x2)*(x3-x2) + (y3-y2)*(y3-y2));
		double const c = sqrt((x3-x1)*(x3-x1) + (y3-y1)*(y3-y1));

		double const cosA = (b*b+c*c-a*a)/(2*b*c);
		double const cosB = (a*a+c*c-b*b)/(2*a*c);
		double const cosC = (a*a+b*b-c*c)/(2*a*b);
		double const sinA = sqrt(1-cosA*cosA);

		double const r = a / (sinA * 2);
		//std::cout << "r = " << r << std::endl;

		//std::cout << "cosA = " << cosA << std::endl;
		//std::cout << "cosB = " << cosB << std::endl;
		//std::cout << "cosC = " << cosC << std::endl;

		if(-0.001 < cosA && cosA < 0.001) std::printf("%.3lf %.3lf", (x1+x2) / 2 , (y1+y2) / 2);
		else if (-0.001 < cosB && cosB < 0.001) std::printf("%.3lf %.3lf", (x2+x3) / 2 ,(y2+y3) / 2);
		else if (-0.001 < cosC && cosC < 0.001) std::printf("%.3lf %.3lf", (x1+x3) / 2 , (y1+y3) / 2);
		else
		{
			double const h = sqrt(r*r-(c/2)*(c/2));
				
			//std::cout << "c = " << c << std::endl;
			std::cout << "h = " << h << std::endl;
			
			double const xm = (x1+x3)/2;
			double const ym = (y1+y3)/2;
			std::cout << "xm = " << xm << " ym = " << ym << std::endl;

			double const sinD = (y1-y3) / sqrt((x3-x1)*(x3-x1) + (y3-y1)*(y3-y1));
			double const cosD = (x1-x3) / sqrt((x3-x1)*(x3-x1) + (y3-y1)*(y3-y1));
			std::cout << "sinD = " << sinD << " cosD = " << cosD << std::endl;

			double y4 = h * cosD;
			double x4 = h * sinD;
			std::cout << "x4 = " << x4 << " y4 = " << y4 << std::endl;

			if((sinD < 0 && cosD < 0) || (sinD > 0 && cosD < 0)) x4 *= -1;
			if((sinD == 0 && cosD < 0) || (sinD > 0 && cosD > 0) || (sinD < 0 && cosD > 0)) y4 *= -1;

			double const xd = xm + x4;
			double const yd = ym + y4;


			std::printf("%.3lf %.3lf",xd, yd);
		}
		std::printf(" %.3lf\n", r);
	}
	return 0;
}

C++: #include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	double x1, y1, x2, y2, x3, y3, r, xa, ya, xb, yb, xc, yc;
	double x, y;
	int n;

	cin >> n;
	
	for (int i = 0; i < n; i++){
		cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
		xa = (x2 - x1) * 2;
		xb = (y2 - y1) * 2;
		xc = pow(x1, 2) - pow(x2, 2) + pow(y1, 2) - pow(y2, 2);
		ya = (x3 - x1) * 2;
		yb = (y3 - y1) * 2;
		yc = pow(x1, 2) - pow(x3, 2) + pow(y1, 2) - pow(y3, 2);
		x = (xb * yc - yb * xc) / (xa * yb - ya * xb);
		y = (xc * ya - yc * xa) / (xa * yb - ya * xb);
		r = hypot(x - x1, y - y1);
		printf("%.3lf %.3lf %.3lf", x, y, r);
	}
	return (0);
}

C++: #include<cstdio>
#include<cmath>

using namespace std;

double X1,Y1,X2,Y2,X3,Y3,a,b,c,d,e,f,px,py,r;

int main(){
    int n; scanf( "%d", &n );
    for( int i = 0; i < n; i++ )
    {
        scanf( "%lf %lf %lf %lf %lf %lf", &X1, &Y1, &X2, &Y2, &X3, &Y3 );
        a = ( X2 - X1 ), b = ( Y2 - Y1 ), e = ( a * ( X1 + X2 ) / 2 + b * ( Y1 + Y2 ) / 2 );
        c = ( X3 - X2 ), d = ( Y3 - Y2 ), f = ( c * ( X2 + X3 ) / 2 + d * ( Y2 + Y3 ) / 2 );
        px = ( e * d - b * f ) / ( a * d - b * c ), py = ( a * f - e * c ) / ( a * d - b * c );
        r = ( px - X1 ) * ( px - X1 ) + ( py - Y1 ) * ( py - Y1 );
        r = sqrt( r );
        printf( "%lf %lf %lf\n", px, py, r );
        n--;
    }
    return 0;
}