前のページの(1)(1')(1''), (2)(2')(2''), において、1,2,3 と変わっていく数字を i として、
連立方程式
a11・X1 + a12・X2 + a13・X3 = a14
a21・X1 + a22・X2 + a23・X3 = a24
a31・X1 + a32・X2 + a33・X3 = a34 を解くプログラムを完成させなさい

#include <stdio.h> #include <math.h> /* 絶対値 fabs( )を使うとき必要 */ #include <stdlib.h> /* 強制終了 exit(1) を使うとき必要 */ void main(){ double a[  ][   ], piv, del; /* 使える配列は0番からここに書いた数の一つ前までなので注意 */ int k,i,j; double EPS=1.0e-6; /* とても小さい数という意味 */ /*--- 連立方程式の係数a11, a12,...の入力 ---*/ for(k= ; k<= ; k++){ for(j= ; j<= ; j++){ scanf("%lf", &a[k][j] ); } } /*--- ガウス ジョルダン法(掃きだし法)で連立方程式を解く ---*/ for (i= ; i<= ; i++){ piv = a[ ][ ]; if( fabs(piv) < EPS ) exit(1); /* piv があまり小さい時中止、0での割り算を避ける */ for(j= ; j<= ; j++){ a[ ][ ]= a[ ][ ]/piv; } for(k= ; k<= ; k++){ if( k!= ){ del = a[ ][ ]; for( j= ; j<= ; j++){   a[ ][ ] = a[ ][ ] - del * a[ ][ ]; } } } } printf("answer:\n"); for (i=1; i<=3; i++){ printf("X%d = %f\n", i, a[i][ ]); } } 続く