行列A*行列B=行列C という問題なんですけど、今こんなプログラムを考えたのですが、
これでは手計算と明らかに違ってしまいます。�@と�Aに部分を変えればいいはずなのですがこれじゃただ足した
だけになってしまいます。。。どうか教えてくださいませ!
#include<stdio.h>#define N 3 #define M 3 void main();
void m_print(double [N] [M]);
void m_add(double [N] [M],double[N][M],double[N][M]);void main()
{double A [N] [M] = {{1,3,5},{4,8,1},{11,6,8}},
B [N] [M] = {{1.9,3.6,4.7},{7.2,8.5,8.8},{0,4,0}},
   C [N] [M] ;
m_print(A);printf("\n\n * \n\n");m_print(B);printf("\n\n = \n\n");
m_add(A,B,C); m_print(C); printf("\n\n"); }
void m_add(double X[N][M], double Y[N][M], double Z[N][M]) {
//�@long g,h;  for(g=0;g<M;g++) for(h=0;h<N;h++){
C[g][h]=A[g][h]*B[g][h];
//
}}
void m_print(double X[M][N]) {
//�Along i,j; printf("_");i=1;
while((i++) < N){
printf(" "); }
printf(" \n"); for(i=0; i<M; i++){
printf("|");for(j=0; j<N-1; j++){
printf("%10.5f,",X[i][j]); }
printf("%10.5f|\n",X[i][N-1]); }
printf("~"); i=1; while((i++) <N){
printf(" "); }
printf(" ~\n");
//  }