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 <cstdio>
#include <cmath>
using namespace std;

/*
 * ax+by=c, dx+ey=f ツづーツ嘉ーツつュツ。
 * ツ姪淞づィツ値ツつェ0ツづ按づァツ青ャツ古キツ、1ツづ個湘ェツ債づ溝e-bdツつェEPSツ暗按可コツづ可づ按づづつ「ツづ古ォツ債キツ妥・ツつォツつ「ツ。
 */
int solve_linear_equations( double a, double b, double c, 
  double d, double e, double f, double& x, double& y )
{
  double EPS = 1e-9;
  double delta = a*e-b*d;
  x = 0.0;
  y = 0.0;
  if( (delta < 0 && -delta < EPS) || delta < EPS ) return 1;
  x = ((c*e-b*f) / delta) + 0.0;
  y = ((a*f-c*d) / delta) + 0.0;
  return 0;
}

int main( void )
{
  int n;
  double x1,y1,x2,y2,x3,y3;
  cin >> n;
  for( int i=0; i<n; i++ ){
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
    double a,b,c,d,e,f,x,y,r;
    a = 2*(x1-x2);
    b = 2*(y1-y2);
    c = x1*x1+y1*y1-x2*x2-y2*y2;
    d = 2*(x1-x3);
    e = 2*(y1-y3);
    f = x1*x1+y1*y1-x3*x3-y3*y3;
    solve_linear_equations( a,b,c,d,e,f,x,y );
    r = sqrt(x1*x1-2*x1*x+x*x+y1*y1-2*y1*y+y*y);
    printf( "%.3lf %.3lf %.3lf\n",x,y,r );
  }
  return 0;
}

C++: #include <iostream>
#include <iomanip>
#include <math.h>

using namespace std;

int main(){
	int cnt;
	cin >> cnt;
	double x1, y1, x2, y2, x3, y3;
	double a1, a2, b1, b2, c1, c2;
	double a, b, c;
	double A;
	double xp, yp, r;
	while (cnt > 0 && cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3) {
		// ?????\??????????????§?¨?????±???????
		a1 = 2 * (x2 - x1);
		b1 = 2 * (y2 - y1);
		c1 = x1 * x1 - x2 * x2 + y1 * y1 - y2 * y2;
		a2 = 2 * (x3 - x1);
		b2 = 2 * (y3 - y1);
		c2 = x1 * x1 - x3 * x3 + y1 * y1 - y3 * y3;
		xp = (double)((b1*c2 - b2*c1) / (a1*b2 - a2*b1) * 1000) / 1000.0;
		yp = (double)((c1*a2 - c2*a1) / (a1*b2 - a2*b1) * 1000) / 1000.0;

		// ?????\????????????????±???????
		r = hypot(xp - x1, yp - y1);

		cout << fixed << setprecision(3);
		cout << xp << " " << yp << " " << r << endl;
		cnt -= 1;
	}
	return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
const int INF = 1000000000;
#define REP(i,s,n) for(int i=(int)(s);i<(int)(n);i++)
#define rep(i,n) REP(i, 0, n)
typedef complex<double> Point;
const double EPS = 1.0e-9;
const double PI = acos(-1);
int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    int test; cin >> test;
    rep(casenum, test){
        Point a, b, c, m1, m2, d1, d2;
        cin >> a.real() >> a.imag() >> b.real() >> b.imag() >> c.real() >> c.imag();
        m1 = (a + b) / 2.0, m2 = (b + c) / 2.0;//????????¨???????????????, ????????¨????????????
        double s1 = arg(b - a) + PI / 2.0, s2 = arg(c - b) + PI / 2.0;//?????¨??´???????????????
        d1 = polar(1.0, s1), d2 = polar(1.0, s2);
        Point mn = m2 - m1;
        double q = (mn.real() / d1.real() - mn.imag() / d1.imag()) / (d2.real() / d1.real() - d2.imag() / d1.imag());
        q *= -1;
        double x = m2.real() + q * d2.real();
        double y = m2.imag() + q * d2.imag();
        double r = abs(Point(x, y) - a);
        cout << x << ' ' << y << ' ' << r << endl;

        printf("%.3lf %.3lf %.3f\n", x, y, r);
    }
    return 0;
}

C++: #include <cmath>
#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
  int n;
  double x1,y1,x2,y2,x3,y3,p,p1,p2,q,q1,q2,r;
  cin >> n;
  for(int i=0;i<n;i++) {
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
    p1 = (x2 * x2 - x1 * x1 + y2 * y2 - y1 * y1) * (y3 - y1) - (x3 * x3 - x1 * x1 + y3 * y3 - y1 * y1) * (y2 - y1);
    p2 = 2 * (x1 * y2 - x1 * y3 + x2 * y3 - x2 * y1 + x3 * y1 - x3 * y2);
    p = p1 / p2;
    q1 = (y2 * y2 - y1 * y1 + x2 * x2 - x1 * x1) * (x3 - x1) - (y3 * y3 - y1 * y1 + x3 * x3 - x1 * x1) * (x2 - x1);
    q2 =  2 * (y1 * x2 - y1 * x3 + y2 * x3 - y2 * x1 + y3 * x1 - y3 * x2);
    q = q1 / q2;
    r = sqrt((x1-p) * (x1-p) + (y1-q) * (y1-q) );
    printf("%.3f %.3f %.3f", p, q, r);
  }
}

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

typedef double dbl;

int main() {
	int n;
	cin >> n;

	for (int i = 0; i < n; i++) {
		dbl x1, y1, x2, y2, x3, y3;
		dbl l1, l2, l3;

		cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;

		l1 = sqrt(pow(x3 - x2, 2) + pow(y3 - y2, 2));
		l2 = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));
		l3 = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));

		dbl s, S, r;

		s = (l1 + l2 + l3) / 2;
		S = sqrt(s * (s - l1) * (s - l2) * (s - l3));
		r = (l1 * l2 * l3) / (4 * S);

		dbl A, B, C, D, E, F;

		A = 2 * (x2 - x1); B = 2 * (y2 - y1); C = x2*x2 - x1*x1 + y2*y2 - y1*y1;
		D = 2 * (x3 - x1); E = 2 * (y3 - y1); F = x3*x3 - x1*x1 + y3*y3 - y1*y1;

		dbl ox, oy;

		ox = (C*E - B*F) / (A*E - B*D);
		oy = (A*F - C*D) / (A*E - B*D);

		if (ox == 0) ox = 0;
		if (oy == 0) oy = 0;
		printf("%.3f %.3f %.3f\n", ox, oy, r);
	}
}

C++: #include <stdio.h>
#include <math.h>

using namespace std;


int main(){
	int n;
	double x1,x2,x3,y1,y2,y3,ox,oy,r;
	scanf("%d",&n);

	for(int i=0;i<n;i++){
		scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
		ox=((y2-y1)*((y3*y3-y1*y1)+(x3*x3-x1*x1))-(y3-y1)*((y2*y2-y1*y1)+(x2*x2-x1*x1)))/
				(2*((x3-x1)*(y2-y1)-(x2-x1)*(y3-y1)));
		oy=((x1-x2)*ox)/(y2-y1)+((y2*y2-y1*y1)+(x2*x2-x1*x1))/(2*(y2-y1));
		r = sqrt((ox-x1)*(ox-x1)+(oy-y1)*(oy-y1));
		printf("%.3lf %.3lf %.3lf\n",ox,oy,r);
	}
    return 0;
}

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

using namespace std;

int main()
{
    int n;
    cin >> n;
    double x1,y1,x2,y2,x3,y3;
    while(n>0)
    {
        cin >> x1 >> y1 >>x2 >> y2 >> x3 >> y3;
        double s,v1x,v1y,v2x,v2y;
        v1x = y2-y1;
        v1y = x1-x2;

        v2x = y3-y1;
        v2y = x1-x3;
        double detA = v1x*v2y-v1y*v2x;
        double hx = (x2+x1)/2;
        double hy = (y2+y1)/2;
        s = (v2y*hx -v2x*hy)/detA;
        double ox,oy;
        ox = hx + s*v1x;
        oy = hy + s*v1y;
        if(-0.0005<ox&&ox<0)ox = 0;
        if(-0.0005<oy&&oy<0)oy = 0;
        double r = sqrt((x1-ox)*(x1-ox)+(y1-oy)*(y1-oy));
        printf("%.3f %.3f %.3f\n",ox,oy,r);
        --n;
    }
    return 0;
}