#include <stdio.h>

#define N 2

void solveLinearEquations(double a[N][N+1]) {
    double x[N];
    int i, j, k;
    
    // ガウス消去法で方程式を解く
    for (i = 0; i < N; i++) {
        // ピボット選択と正規化
        for (k = i + 1; k < N; k++) {
            double factor = a[k][i] / a[i][i];
            for (j = i; j <= N; j++) {
                a[k][j] -= factor * a[i][j];
            }
        }
    }

    // 後退代入法で解を計算
    for (i = N - 1; i >= 0; i--) {
        x[i] = a[i][N];
        for (j = i + 1; j < N; j++) {
            x[i] -= a[i][j] * x[j];
        }
        x[i] /= a[i][i];
    }

    // 結果の出力
    for (i = 0; i < N; i++) {
        printf("x[%d] = %.2f\n", i + 1, x[i]);
    }
}

int main(void) {
    // 連立方程式の係数行列
    double a[N][N + 1] = {
        {1.0, 1.0, 8.0},   // x + y = 8
        {230.0, 310.0, 2080.0} // 230x + 310y = 2080
    };
    
    // 解の計算
    solveLinearEquations(a);

    return 0;
}
