#include <stdio.h>
#define N 3
int main(void) {
int i, j, k;
double a[N][N] = {
{ 1,3,2 },
{ 3,8,4 },
{ 2,3,1 },
{ 5,9,4 }
};
double b[N] = { 18, 21, 5, 16 }, s;
// 行列と定数項の出力
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
}
}
printf("-------------------------------\n");
// 前進消去
for (k = 0; k < N - 1; k++) {
for (i = k + 1; i < N; i++) {
double factor = a[i][k] / a[k][k];
for (j = k; j < N; j++) {
a[i][j] -= factor * a[k][j];
}
b[i] -= factor * b[k];
}
}
// 後退代入
double x[N];
for (i = N - 1; i >= 0; i--) {
s = b[i];
for (j = i + 1; j < N; j++) {
s -= a[i][j] * x[j];
}
x[i] = s / a[i][i];
}
// 結果出力
for (k = 0; k < N; k++) {
printf("x[%d] = %5.2lf\n", k
, x
[k
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgTiAzCgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgaSwgaiwgazsKICAgIGRvdWJsZSBhW05dW05dID0gewogICAgICAgIHsgMSwzLDIgfSwKICAgICAgICB7IDMsOCw0IH0sCiAgICAgICAgeyAyLDMsMSB9LAogICAgICAgIHsgNSw5LDQgfQogICAgfTsKICAgIGRvdWJsZSBiW05dID0geyAxOCwgMjEsIDUsIDE2IH0sIHM7CgogICAgLy8g6KGM5YiX44Go5a6a5pWw6aCF44Gu5Ye65YqbCiAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgZm9yIChqID0gMDsgaiA8IE47IGorKykgewogICAgICAgICAgICBwcmludGYoIiU1LjJsZiAiLCBhW2ldW2pdKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCIgfCAlNS4ybGZcbiIsIGJbaV0pOwogICAgfQogICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKCiAgICAvLyDliY3pgLLmtojljrsKICAgIGZvciAoayA9IDA7IGsgPCBOIC0gMTsgaysrKSB7CiAgICAgICAgZm9yIChpID0gayArIDE7IGkgPCBOOyBpKyspIHsKICAgICAgICAgICAgZG91YmxlIGZhY3RvciA9IGFbaV1ba10gLyBhW2tdW2tdOwogICAgICAgICAgICBmb3IgKGogPSBrOyBqIDwgTjsgaisrKSB7CiAgICAgICAgICAgICAgICBhW2ldW2pdIC09IGZhY3RvciAqIGFba11bal07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYltpXSAtPSBmYWN0b3IgKiBiW2tdOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDlvozpgIDku6PlhaUKICAgIGRvdWJsZSB4W05dOwogICAgZm9yIChpID0gTiAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgcyA9IGJbaV07CiAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCBOOyBqKyspIHsKICAgICAgICAgICAgcyAtPSBhW2ldW2pdICogeFtqXTsKICAgICAgICB9CiAgICAgICAgeFtpXSA9IHMgLyBhW2ldW2ldOwogICAgfQoKICAgIC8vIOe1kOaenOWHuuWKmwogICAgZm9yIChrID0gMDsgayA8IE47IGsrKykgewogICAgICAgIHByaW50ZigieFslZF0gPSAlNS4ybGZcbiIsIGssIHhba10pOwogICAgfQoKICAgIHJldHVybiAwOwp9