Go: package main

import "fmt"

func main() {

	for {
		var a, b, c, d, e, f float64
		var x, y float64
		i, _ := fmt.Scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)
		if i != 6 {
			return
		}

		// x = ((e * c) - (b * f)) / ((a * e) - (b * d))
		y = ((a * f) - (d * c)) / ((a * e) - (b * d))
		x = (c - b*y) / a

		fmt.Printf("%.3f %.3f\n", x, y)
	}
}

C++: #include<bits/stdc++.h>
using namespace std;

vector<vector<double> > A;
vector<double> B;

void gauss_jordan(){
    for(int i=0;i<A.size();i++){
        B[i] /= A[i][i];
        double aii = A[i][i];
        for(int j=i;j<A.size();j++)
            A[i][j] /= aii;
        for(int j=0;j<A.size();j++){
            if(j == i) continue;
            B[j] -= A[j][i] * B[i];
            double aji = A[j][i];
            for(int k=i;k<A.size();k++)
                A[j][k] -= aji * A[i][k];
        }
    }
}


int main(){
    double a[2][2] = {0}, b[2] = {0};
    while(scanf("%lf %lf %lf %lf %lf %lf", &a[0][0], &a[0][1], &b[0], &a[1][0], &a[1][1], &b[1]) != EOF){
        A.clear();
        B.clear();
        A.resize(2);
        for(int i=0;i<2;++i){
            for(int j=0;j<2;++j){
                A[i].push_back(a[i][j]);
            }
            B.push_back(b[i]);
        }
        gauss_jordan();
        printf("%.3f %.3f\n", B[0], B[1]);
    }

    return 0;
}