#include <stdio.h>
#define N 3
int main(void) {
int i, j, k;
double a[N][N] = {
{ 0,1,-3 },
{ 1,2,4 },
{ 2,1,-1 },
{ -11,13,5 }
};
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+CiNkZWZpbmUgTiAzCgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgaSwgaiwgazsKICAgIGRvdWJsZSBhW05dW05dID0gewogICAgICAgIHsgMCwxLC0zIH0sCiAgICAgICAgeyAxLDIsNCB9LAogICAgICAgIHsgMiwxLC0xIH0sCiAgICAgICAgeyAtMTEsMTMsNSB9CiAgICB9OwogICAgZG91YmxlIGJbTl0gPSB7IDE4LCAyMSwgNSwgMTYgfSwgczsKCiAgICAvLyDooYzliJfjgajlrprmlbDpoIXjga7lh7rlipsKICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBmb3IgKGogPSAwOyBqIDwgTjsgaisrKSB7CiAgICAgICAgICAgIHByaW50ZigiJTUuMmxmICIsIGFbaV1bal0pOwogICAgICAgIH0KICAgICAgICBwcmludGYoIiB8ICU1LjJsZlxuIiwgYltpXSk7CiAgICB9CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwoKICAgIC8vIOWJjemAsua2iOWOuwogICAgZm9yIChrID0gMDsgayA8IE4gLSAxOyBrKyspIHsKICAgICAgICBmb3IgKGkgPSBrICsgMTsgaSA8IE47IGkrKykgewogICAgICAgICAgICBkb3VibGUgZmFjdG9yID0gYVtpXVtrXSAvIGFba11ba107CiAgICAgICAgICAgIGZvciAoaiA9IGs7IGogPCBOOyBqKyspIHsKICAgICAgICAgICAgICAgIGFbaV1bal0gLT0gZmFjdG9yICogYVtrXVtqXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBiW2ldIC09IGZhY3RvciAqIGJba107CiAgICAgICAgfQogICAgfQoKICAgIC8vIOW+jOmAgOS7o+WFpQogICAgZG91YmxlIHhbTl07CiAgICBmb3IgKGkgPSBOIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBzID0gYltpXTsKICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IE47IGorKykgewogICAgICAgICAgICBzIC09IGFbaV1bal0gKiB4W2pdOwogICAgICAgIH0KICAgICAgICB4W2ldID0gcyAvIGFbaV1baV07CiAgICB9CgogICAgLy8g57WQ5p6c5Ye65YqbCiAgICBmb3IgKGsgPSAwOyBrIDwgTjsgaysrKSB7CiAgICAgICAgcHJpbnRmKCJ4WyVkXSA9ICU1LjJsZlxuIiwgaywgeFtrXSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=