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++: #define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES
 
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<stdarg.h>
#include<malloc.h>

double round(double);

int main()
{
	int i, n;
	double x1, y1, x2, y2, x3, y3;
	double px, py, r;
	double a, b, c, cosA, sinA, hx;

	scanf("%d", &n);

	for(i=0; i<n; i++){

		scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
		
		a = sqrt(pow((x2-x3),2)+pow((y2-y3),2));
		b = sqrt(pow((x3-x1),2)+pow((y3-y1),2));
		c = sqrt(pow((x1-x2),2)+pow((y1-y2),2));

		cosA = (pow(b,2)+pow(c,2)-pow(a,2)) / (2*b*c);
		sinA = sqrt(1 - pow(cosA,2));
		r = a / (2*sinA);

		hx = sqrt(pow(r,2)-(pow(b,2)/4));
		
		if(pow(a,2)+pow(c,2) >= pow(b,2)){

			px = (x1+x3)/2 + (hx*(y1-y3))/b;
			py = (y1+y3)/2 + (hx*(x3-x1))/b;

		} else {

			px = (x1+x3)/2 - (hx*(y1-y3))/b;
			py = (y1+y3)/2 - (hx*(x3-x1))/b;

		}

		px = px * 1000;
		py = py * 1000;
		r = r * 1000;

		px = round(px);
		py = round(py);
		r = round(r);

		px = px / 1000;
		py = py / 1000;
		r = r / 1000;

		if(fabs(px) < 1e-6)
			px = 0;
		if(fabs(py) < 1e-6)
			py = 0;
		if(fabs(r) < 1e-6)
			r = 0;

		printf("%5.3f %5.3f %5.3f\n", px, py, r);

	}
	return 0;
}

double round(double x)
{
	if(x>=0)
		x = floor(x + 0.5);
	else
		x = -1.0 * floor(fabs(x) + 0.5);
	return x;
}

C++: #include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <queue>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <complex>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#include <fstream>
#include <stdio.h>

using namespace std;

//conversion
//------------------------------------------
inline int toInt(string s) {int v; istringstream sin(s);sin>>v;return v;}
template<class T> inline string toString(T x) {ostringstream sout;sout<<x;return sout.str();}

//typedef
//------------------------------------------
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<double> VEC;
typedef vector<VEC> MAT;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef pair<int, PII> TIII;
typedef long long LL;
typedef vector<LL> VLL;
typedef vector<VLL> VVLL;
//container util

//------------------------------------------
#define ALL(a)  (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define PB push_back
#define MP make_pair
#define SZ(a) int((a).size())
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define SORT(c) sort((c).begin(),(c).end())
#define MT(a,b,c) MP(a, MP(b, c))
#define T1 first
#define T2 second.first
#define T3 second.second.first
#define T4 second.second.second

//repetition
//------------------------------------------
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define REP(i,n)  FOR(i,0,n)
#define EPS 1.0e-9

int main(){
	int n;
	cin>>n;
	REP(i,n){
		double x[3],y[3];
		REP(j,3)cin>>x[j]>>y[j];
		double a = y[2]-y[1];
		double b = y[0]-y[1];
		double c = (x[0]-x[2])*0.5;
		double d = x[1]-x[2];
		double e = x[1]-x[0];
		double f = (y[0]-y[2])*0.5;
		double s = (c*e-b*f)/(a*e-b*d);
		double rx = (x[1]+x[2])*0.5+s*(y[2]-y[1]);
		double ry = (y[1]+y[2])*0.5+s*(x[1]-x[2]);
		double r = sqrt(pow(rx-x[0], 2.0)+pow(ry-y[0], 2.0));
		printf("%.3f %.3f %.3f\n", rx, ry,r);
	}
	return 0;
}

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

int w(int n)
{
  return n * n;
}

int main()
{
  double x1, y1, x2, y2, x3, y3;
  int n;

  cin >> n;

  for (int i = 0; i < n; i++){
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
    double px, py, r; 
    px = ((y1 - y3) * (w(y1) - w(y2) + w(x1) - w(x2)) - (y1 - y2) * (w(y1) - w(y3) + w(x1) - w(x3))) / (2 * (y1 - y3) * (x1 - x2) - 2 * (y1 - y2) * (x1 - x3));
    py = ((x1 - x3) * (w(x1) - w(x2) + w(y1) - w(y2)) - (x1 - x2) * (w(x1) - w(x3) + w(y1) - w(y3))) / (2 * (x1 - x3) * (y1 - y2) - 2 * (x1 - x2) * (y1 - y3));
    r = sqrt(w(px - x1) + w(py - y1));
    
    printf("%.3f %.3f %.3f\n", px, py, r);
  }

  return 0;
}

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

float a, b, c, d, e, f;
float x, y;
float rx, ry;

void solve(){
  float tmp1 = f-(c*d/a);
  float tmp2 = e-(b*d/a);
  y = tmp1/tmp2;
  x = (c - b * y) / a;
  
  rx = x;
  ry = y;
  
  // ツ四ツ偲個古慊禿シ
  int tx = (int)(10000 * x);
  if (tx % 10 >= 5) {
    tx += 10;
  }
  tx /= 10;
  x = (float)tx / 1000.0f;

  int ty = (int)(10000 * y);
  if (ty % 10 >= 5) {
    ty += 10;
  }
  ty /= 10;
  y = (float)ty / 1000.0f;
  
  printf("%.3f %.3f ", x, y);        
}

int main(int argc, char const* argv[]) {
  int n;
  cin>>n;
  for (int i = 0; i < n; i += 1) {
    float x1, y1, x2, y2, x3, y3;
    cin>>x1>>y1>>x2>>y2>>x3>>y3;
    a = -2*x1 + 2*x2;
    b = -2*y1 + 2*y2;
    c = x2*x2 + y2*y2 - x1*x1 - y1*y1;
    d = -2*x1 + 2*x3;
    e = -2*y1 + 2*y3;
    f = x3*x3 + y3*y3 - x1*x1 - y1*y1;

    solve();
    
    float r = (rx - x1)*(rx - x1) + (ry - y1)*(ry - y1);
    r = sqrt(r);
    int tr = (int)(10000 * r);
    if (tr % 10 >= 5) {
      tr += 10;
    }
    tr /= 10;
    r = (float)tr / 1000.0f;
    
    printf("%.3f\n", r);
  }  
  return 0;
}

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


int main(){
  int n;
  double a,b,c,d,e,f;
  double x1,x2,x3,y1,y2,y3;
  double px,py;
  double r;

  cin >> n;

  for(int i=0;i<n;i++){
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
    a = (x2-x1)*2.0;
    b = (y2-y1)*2.0;
    c = (x2*x2 + y2*y2 - x1*x1 - y1*y1);
    d = (x3-x1)*2.0;
    e = (y3-y1)*2.0;
    f = (x3*x3 + y3*y3 - x1*x1 - y1*y1);
    px = (c*e-b*f)/(a*e-b*d);
    py = (a*f-c*d)/(a*e-b*d);
    r = sqrt((px-x1)*(px-x1) + (py-y1)*(py-y1));
    //printf("%.3f %.3f %.3f\n",px,py,r);
    cout << fixed << setprecision(3) << px << " " << py << " " << r << endl;



  }

  return 0;
}

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

float a, b, c, d, e, f;
float x, y;

void solve(){
  float tmp1 = f-(c*d/a);
  float tmp2 = e-(b*d/a);
  y = tmp1/tmp2;
  x = (c - b * y) / a;
  printf("%.3f %.3f ", x, y);        
  //printf("y=%f\n", (f-(c*d/a))/(e-(b*d/a)));
  // ツ四ツ偲個古慊禿シ
  int tx = ((int)(10000 * x)) % 10;
  if (tx >= 5) {
    x += 0.001;
  }
  int ty = ((int)(10000 * y)) % 10;
  if (ty >= 5) {
    y += 0.001;
  }
}

int main(int argc, char const* argv[]) {
  int n;
  cin>>n;
  for (int i = 0; i < n; i += 1) {
    float x1, y1, x2, y2, x3, y3;
    cin>>x1>>y1>>x2>>y2>>x3>>y3;
    a = -2*x1 + 2*x2;
    b = -2*y1 + 2*y2;
    c = x2*x2 + y2*y2 - x1*x1 - y1*y1;
    d = -2*x1 + 2*x3;
    e = -2*y1 + 2*y3;
    f = x3*x3 + y3*y3 - x1*x1 - y1*y1;
    solve();
    float r = (x - x1)*(x - x1) + (y - y1)*(y - y1);
    int tr = ((int)(10000 * r)) % 10;
    if (tr >= 5) {
      r += 0.001;
    }
    printf("%.3f\n", sqrt(r));
  }  
  return 0;
}