Go: package main

import (
	"fmt"
	"math"
)

func main() {
	var num int
	fmt.Scan(&num)
	for i := 0; i < num; i++ {
		var x1, y1, x2, y2, x3, y3 float64
		fmt.Scanf("%f%f%f%f%f%f", &x1, &y1, &x2, &y2, &x3, &y3)

		a := 2 * (x2 - x1)
		b := 2 * (y2 - y1)
		c := 2 * (x3 - x1)
		d := 2 * (y3 - y1)
		e := x2*x2 - x1*x1 + y2*y2 - y1*y1
		f := x3*x3 - x1*x1 + y3*y3 - y1*y1

		// 直線1: ax + by - e = 0
		// 直線2: cx + dy - f = 0
		px := (d*e - b*f) / (a*d - b*c)
		py := (c*e - a*f) / (b*c - a*d)
		r := math.Sqrt((px-x1)*(px-x1) + (py-y1)*(py-y1))
		fmt.Printf("%.3f %.3f %.3f\n", px, py, r)
	}
}

C++: #include<iostream>
#include<cmath>
#include<stdio.h>
using namespace std;
int main() {
  int n=0,p,q,r;
  double ax=0,ay=0,bx=0,by=0,cx=0,cy=0,S=0,R=0,a=0,b=0,c=0,x=0,y=0;
  cin>>n;
  for(int i=0; i<n; i++){
    cin>>ax>>ay>>bx>>by>>cx>>cy;
    S=((bx-ax)*(cy-ay)-(cx-ax)*(by-ay))/2;
    a=sqrt((cx-bx)*(cx-bx)+(cy-by)*(cy-by));
    b=sqrt((cx-ax)*(cx-ax)+(cy-ay)*(cy-ay));
    c=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
    R=a*b*c/(4*S);
    x=(a*a*(b*b+c*c-a*a)*ax+b*b*(c*c+a*a-b*b)*bx+c*c*(a*a+b*b-c*c)*cx)/(16*S*S);
    y=(a*a*(b*b+c*c-a*a)*ay+b*b*(c*c+a*a-b*b)*by+c*c*(a*a+b*b-c*c)*cy)/(16*S*S);
    printf("%.3f %.3f %.3f\n",x,y,R);
  }
}

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

using namespace std;

int main() {
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		double x1, y1, x2, y2, x3, y3;
		cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
		double veku1[3], veku2[3];
		veku1[0] = x2-x1;
		veku1[1] = y2-y1;
		veku2[0] = x3-x1;
		veku2[1] = y3-y1;
		veku1[2] = veku1[0]*veku1[0]+veku1[1]*veku1[1];
		veku2[2] = veku2[0]*veku2[0]+veku2[1]*veku2[1];
		double naiseki = veku1[0]*veku2[0]+veku1[1]*veku2[1];
		double p, q;
		q = (veku1[2]*veku2[2]-naiseki*veku1[2])/(2.0*(veku1[2]*veku2[2]-naiseki*naiseki));
		p = -(q-0.5)*veku2[2]/naiseki;
		double k[2];
		k[0] = x1+p*veku1[0]+q*veku2[0];
		k[1] = y1+p*veku1[1]+q*veku2[1];
		double pp = sqrt((k[0]-x1)*(k[0]-x1)+(k[1]-y1)*(k[1]-y1));
		k[0] *= 1000.0;
		if (k[0]-(int)k[0] >= 0.5) {
			k[0] += 1.0;
		}
		k[0] /= 1000.0;
		k[1] *= 1000.0;
		if (k[1]-(int)k[1] >= 0.5) {
			k[1] += 1.0;
		}
		k[1] /= 1000.0;
		pp *= 1000.0;
		if (pp-(int)pp >= 0.5) {
			pp += 1.0;
		}
		pp /= 1000.0;
		printf("%.3f %.3f %.3f\n", k[0], k[1], pp);
	}
	return 0;
}

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

using namespace std;

double sisya(double a) {
	a *= 1000.0;
	//cout << a << endl;
	a += 0.5;
	a = (int)a;
	a /= 1000.0;
	return a; 
}

double ll(double x1, double y1, double x2, double y2) {
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

int main() {
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		double x[3], y[3];
		for (int j = 0; j < 3; j++) {
			cin >> x[j] >> y[j];
		}
		double a1, a2, b1, b2, c1, c2;
		a1 = 2.0 * (x[1]-x[0]);
		a2 = 2.0 * (x[2]-x[0]);
		b1 = 2.0 * (y[1]-y[0]);
		b2 = 2.0 * (y[2]-y[0]);
		c1 = x[0]*x[0]-x[1]*x[1]+y[0]*y[0]-y[1]*y[1];
		c2 = x[0]*x[0]-x[2]*x[2]+y[0]*y[0]-y[2]*y[2];
		double X, Y, R;
		X = (b1*c2-b2*c1)/(a1*b2-a2*b1);
		Y = (c1*a2-c2*a1)/(a1*b2-a2*b1);
		R = ll(X, Y, x[0], y[0]);
		//X = sisya(X);
		//Y = sisya(Y);
		//R = sisya(R);
		printf("%.3f %.3f %.3f\n", X, Y, R);
	}
	return 0;
}

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

class Triangle{

public:
	double a, b, c,a2,b2,c2;
	double cosA, sinA,R,px,py;

	//con???????§???¢???????????§?¨?????±???????????¬?????¨????????¨????????¨?????°???\???????????????????????£?????????
	double con1, con2, con3,con4,con5,con6;


	Triangle(double x1,double y1,double x2,double y2,double x3,double y3);

	double Radius();
	double Px();
	double Py();

};


//Triangle????????????????????????
Triangle::Triangle(double x1, double y1, double x2, double y2, double x3, double y3){

	a2 = (x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1);
	b2 = (x3 - x1)*(x3 - x1) + (y3 - y1)*(y3 - y1);
	c2 = (x2 - x3)*(x2 - x3) + (y2 - y3)*(y2 - y3);

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


	
	cosA = (b2 + c2 - a2) / (2 * b*c);
	sinA = sqrt(1 - (cosA*cosA));

	R = a / (2 * sinA);

	//????????¬?????????????????§?¨?????±???????
	con1 = (y3 - y2)*(x1*x1) - (y3 - y1)*(x2*x2) + (y2-y1)*(x3*x3);
	con2 = (y3 - y1)*x2 - (y2 - y1)*x3 + (y2 - y3)*x1;
	con3 = (y1*y1)*(y3 - y2) + (y2*y2)*(y1 - y3) + (y3*y3)*(y2 - y1);

	//????????????con1+2px*con2+con3=0??¨??????
	px = (con3 - con1) / (2 * con2);


	con4 = (x3 - x2)*(y1*y1) - (x3 - x1)*(y2*y2) + (x2 - x1)*(y3*y3);
	con5 = (x3 - x1)*y2 - (x2 - x1)*y3 + (x2 - x3)*y1;
	con6 = (x1*x1)*(x3 - x2) + (x2*x2)*(x1 - x3) + (x3*x3)*(x2 - x1);

	py = (con6 - con4) / (2 * con5);


}


//?????\????????????Radius????±?????????¢??°
double Triangle::Radius(){

	R=round(R*1000)/1000;
	return R;
}

//px???????????¢??°
double Triangle::Px(){

	return px;
}

//py???????????¢??°
double Triangle::Py(){

	return py;
}



//??£??????????????¨???????§£???
int main(void){


	int n;
	double x1, x2, x3, y1, y2, y3;
	cin >> n;

	for (int i = 0; i < n; i++){
	
		cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
	
		//????§???¢??????????????????????????§???????????????
		Triangle Triangle(x1, y1, x2, y2, x3, y3);
		
		printf("%.3f ", Triangle.Px());
		printf("%.3f ", Triangle.Py());
		printf("%.3f\n",Triangle.Radius());


	}


	return 0;
}

C++: #include<iostream>
#include<vector>
#include<map>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#define INF 1e9

typedef long long int ll;
#define PI pair<int,int>
using namespace std;

PI getAB(PI a,PI b){
	PI ret;
	if(a.first-b.first==0){ret.first=0;}
	else ret.first=(a.second-b.second)/(a.first-b.first);
	ret.second=a.second-ret.first*a.first;
	return ret;
}

PI solve(int a,int b,PI p1,PI p2){
	double x=((double)p1.first+p2.first)/2;
	double y=((double)p1.second+p2.second)/2;
//cout<<"x="<<x<<endl;
//cout<<"y="<<y<<endl;

	PI ret;
	ret.first=-a;
	ret.second=y+a*x;
//cout<<"b="<<y<<"+"<<a<<"*"<<x<<endl;
	return ret;
}

int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		PI p[3];
		for(int j=0;j<3;j++){
			cin>>p[j].first>>p[j].second;
		}
//cout<<"座標"<<endl;

//for(int j=0;j<3;j++)cout<<"("<<p[j].first<<","<<p[j].second<<")"<<endl;
//cout<<endl;
		PI ret;
		int count=0;
		int a[2],b[2];
		for(int j=0;j<2;j++){
if(p[j].second==p[j+1].second)j++;
			ret=getAB(p[j],p[(j+1)%3]);
//cout<<"y="<<ret.first<<"x+"<<ret.second<<endl;
			ret=solve(ret.first,ret.second,p[j],p[j+1]);
//cout<<"y="<<ret.first<<"x+"<<ret.second<<endl;
//cout<<endl;
			a[count]=ret.first;
			b[count]=ret.second;
			count++;
		}
		double cenx,ceny;
		cenx=(double)(b[1]-b[0])/(a[0]-a[1]);
		ceny=(double)(a[0]*b[1]-a[1]*b[0])/(a[0]-a[1]);
		cout<<cenx<<" "<<ceny<<" "<<hypot(cenx-p[0].first,ceny-p[0].second)<<endl;
	}
	return 0;
}