推しミネラルウォーターはありますか?

#include <iostream>
#include <stdio.h>

// 元の数定義
#define N 3 // 3

using namespace std;

//double a[N][N+1];
// 係数
static double a[N][N + 1] = {
{ 1.0, 2.0, 8.0, 4.0 },
{ 4.0, 3.0, 2.0, 12.0 },
{ 1.0, 4.0, 2.0, 4.0 },
};


int main()
{
double d;
int i = 2;

d = a[i][N];
a[i][N] = d - a[i][i] * a[i][N] / a[i][i];
printf("%f\n", a[i][N]);


a[i][N] = a[i][N];
a[i][N] = a[i][N] - a[i][i] * a[i][N] / a[i][i];
printf("%f\n", a[i][N]);

return 0;
}
の計算において、dと置き換えた方と置き換えなかった物の答えは0でした。
しかし、
d = a[i][N];
a[i][N] = d - a[i][i] * a[i][N] / a[i][i];
においては、(a[i][N] - a[i][i] * a[i][N] )/ a[i][i]とおけて、もう一つの
a[i][N] = a[i][N];
a[i][N] = a[i][N] - a[i][i] * a[i][N] / a[i][i];
においては、a[i][N] - {(a[i][i] * a[i][N] )/ a[i][i]}と置けると思うのですが、計算過程が違うのに答えがなぜ同じなのかよく理解できませんでした。
どうか何が間違っているのか指摘して頂けないでしょうか?
どうかよろしくお願い致します。

A 回答 (1件)

こっちはa[i][j]がa[i][i]に変化してる。


これだと演算結果は必ず0ですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!