ここでは、二次の行列を、二次元配列を用いて表現してみる。2つの行列の積をもとめる。
M行N列の行列xと、N行L列の行列yとの積を、M行L列の行列zで求める。
[プログラムの作成]
/*-----------------------------------------------
行列の積
-------------------------------------------------*/
#include<stdio.h>
#define M 3
#define N 2
#define L 3
main()
{
/*数値の定義*/
int x[M][N]={
{1,2},
{3,4},
{5,6}
};
int y[N][L]={
{1,3,5},
{2,4,6}
};
int z[M][L];
int i,j,k; */添字*/
/*積を求める*/
for(i=0;i<M;i++){
for(j=0;j<L;j++){
z[i][j]=0;
for(k=0;k<N;k++){
z[i][j] += x[i][k]*y[k][j];
}
}
}
}
[実行結果]
流れ図
練習問題へ 次へ 選択メニューに戻る