..................の間がプログラム本体です program 7 .................. #include /* 行列とベクトルの掛け算 */ main() { float a[2][2],x[2],y[2]; int i,j; /* 行列に値をいれる(値自身は意味ないです) */ a[0][0]=0.5; a[0][1]=1.0; a[1][0]=0.8; a[1][1]=2.0; /* ベクトルに値をいれる */ x[0]=1.0; x[1]=2.0; /* ベクトルyを初期化(値を0に) */ for( i=0; i<=1; ++i){ y[i]=0; } /* a*xによりyを求める */ for( i=0; i<=1; ++i){ for( j=0; j<=1; ++j){ y[i] += a[i][j]*x[j]; } } /* 出力 */ printf("matrix a:\n"); for( i=0; i<=1; ++i){ for( j=0; j<=1; ++j){ printf(" %f",a[i][j]); } printf("\n"); } printf("vector x:\n"); for( i=0; i<=1; ++i){ printf(" %f\n",x[i]); } printf("vector y=a*x:\n"); for( i=0; i<=1; ++i){ printf(" %f\n",y[i]); } } .................. program 8 .................. #include #define NSIZ 3 /* defineを使った任意サイズの行列同士の掛け算 */ main() { float a[NSIZ][NSIZ],b[NSIZ][NSIZ],c[NSIZ][NSIZ]; int i,j,k; /* ファイルから行列に値を読み込む */ for( i=0; i<=NSIZ-1; ++i){ for( j=0; j<=NSIZ-1; ++j){ scanf("%f",&a[i][j]); } } for( i=0; i<=NSIZ-1; ++i){ for( j=0; j<=NSIZ-1; ++j){ scanf("%f",&b[i][j]); } } /* 行列cを初期化(値を0に) */ for( i=0; i<=NSIZ-1; ++i){ for( j=0; j<=NSIZ-1; ++j){ c[i][j]=0; } } /* a*bによりcを求める */ for( i=0; i<=NSIZ-1; ++i){ for( j=0; j<=NSIZ-1; ++j){ for( k=0; k<=NSIZ-1; ++k){ c[i][j] += a[i][k]*b[k][j]; } } } /* 出力 */ printf("matrix a:\n"); for( i=0; i<=NSIZ-1; ++i){ for( j=0; j<=NSIZ-1; ++j){ printf(" %f",a[i][j]); } printf("\n"); } printf("matrix b:\n"); for( i=0; i<=NSIZ-1; ++i){ for( j=0; j<=NSIZ-1; ++j){ printf(" %f",b[i][j]); } printf("\n"); } printf("matrix c=a*b:\n"); for( i=0; i<=NSIZ-1; ++i){ for( j=0; j<=NSIZ-1; ++j){ printf(" %f",c[i][j]); } printf("\n"); } }