3行3列の行列ABにそれぞれデータを読み込ませます。そして二つを掛け合せます。
その積Cを計算して出力するプログラムを作りたいのですが
このやり方がわかりません。
この計算式は以下のようにするみたいです。
n
Cij =∑Aik × Bkj
で出るみたいなのですが
意味がわからないのです。
行列の掛け算をできるプログラムを教えてください。
まずは計算方法を覚えましょう。
|a11 a12 a13| |b11 b12 b13|
|a21 a22 a23| x |b21 b22 b23|
|a31 a32 a33| |b31 b32 b33|
の場合、
| a11b11 + a12b21 + a13b31 a11b12 + a12b22 + a13b32 a11b13 + a12b23 + a13b33 |
| a21b11 + a22b21 + a23b31 a21b12 + a22b22 + a23b32 a21b13 + a22b23 + a23b33 |
| a31b11 + a32b21 + a33b31 a31b12 + a32b22 + a33b32 a31b13 + a32b23 + a33b33 |
となります。
法則をよく覚えましょう。
(覚えたらプログラムにおとすなんて簡単だよね(^-^))
#include <stdio.h>
// 3行3列のA行列の読み込み
void rmatrix( int X[3][3] )
{ int i, j;
for ( i=0; i<3; i++ )
for ( j=0; j<3; j++ )
scanf( %d, &X[i][j] );
// 3行3列Aの行列の表示
void wmatrix( int X[3][3] )
{ int i, j;
for ( i=0; i<3; i++ )
{ for ( j=0; j<3; j++ )
printf( %d , X[i][j] );
printf( \n ); } }
// 3行3列の行列の入出力
void main()
{ int A[3][3];
printf( \n3行3列の行列データを入力して下さい\n );
rmatrix( A ); // 行列の入力
printf( \n3行3列の行列データを表示します\n );
wmatrix( A ); // 行列の表示
}
というプログラムで読み込まなければならないのですが
教えていただいたものからどのようにしていったらいいのでしょうか?
まったくプログラムが苦手なので
教えてもらえないでしょうか?