/*-------- C言語の配列と行列はよく似たものです。 2行×2列の計算をするのでしたら、2行×2列の配列で計算します。 この例の場合は、行列と同じように添字を1から始めているので3×3の配列を宣言しています。 さて、行列式の積の求め方は覚えていますか? X11 X12 × Y11 Y12 = X11Y11+X12Y21 X11Y12+X12Y22 X21 X22 Y21 Y22 X21Y11+X22Y21 X21Y12+X22Y22 ですね。行と列の計算の順番を考慮すると、 for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ for(k=1;k<=n;k++){ c[i][j] += a[i][k] * b[k][j]; } } } のような順番で計算すると、積を求めることが出来ます。 ちなみに和を求めるのでしたら、 for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ c[i][j] = a[i][j] + b[i][j]; } } のようなプログラムになります。 ----*/ /* 3*3の行列計算 */ #include #define NUM 3 int ans[3][NUM][NUM]; int a[NUM][NUM]/* = { {1,2,3}, {1,2,3}, {1,2,3}, }*/; int b[NUM][NUM]/* = { {1,2,3}, {1,2,3}, {1,2,3}, }*/; void wa(void); void sa(void); void seki(void); void dsp(void); void scan(void); int main(void) { scan(); wa(); sa(); seki(); dsp(); return 0; } void scan(void) { int i,j; for(i=0;i