#include int main(void) { /* 変数imax、jmaxを宣言する。 */ int imax=3, jmax=2, i, j; /* 配列a、b、cを宣言する。 配列aはimax行jmax列の行列に対応する。 また配列bは要素数jmaxのベクトル、 配列cは要素数imaxのベクトルに対応する。 */ float a[3][2] = { 0., -1., 1., 0., 0., 0.}; float b[2] = { 2., -1.}; float c[3]; /* 行列aとベクトルbの積を計算する。 */ /* ここからforループが始まる。 */ for (i=0; i<=imax-1; i++) { /* c[i]にゼロを代入する。 */ c[i] = 0.; /* ここからforループが始まる。 */ for (j=0; j<=imax-1; j++) { /* 行列aの(i,j)成分とベクトルbの第j成分の積を、 c[i]に加える。 */ c[i] = c[i] + a[i][j] * b[j]; /* ここでforループが終了する。 */ } /* ここでforループが終了する。 */ } /* 結果を書き出す。 */ /* ここからforループが始まる。 */ for (i=0; i<=imax-1; i++) { /* c[i]の値を標準出力に書き出す。 "%d"は整数型、"%f"は浮動小数点型の書式であることを表している。 */ printf( "c[%d] = %f\n", i+1, c[i] ); /* ここでforループが終了する。 */ } return 0; }