C言語マトリックス加算


難しい問題ではありませんが、自分で考えてテストを独立して完成させ、ここに保存して、自分に励ましを与えます.
/*
Author:SwordAutumn
2015  04  08    15:35:00 CST
*/
#include <stdio.h>

//const int N=3;
//const int M=2;
#define N 5
#define M 5


int main(int argc, char const *argv[])
{
    int i,j,k;
    int a[N][M];
    int b[M][N];
    printf("Input A[%d][%d]=
",N,M);     for(i=0;i<N;i++){         for(j=0;j<M;j++){             scanf("%d",&a[i][j]);         }     }     printf("Input B[%d][%d]=
",M,N);     for(i=0;i<M;i++){         for(j=0;j<N;j++){             scanf("%d",&b[i][j]);         }     }     int c[N][N],d[M][M];      printf("A:
");     for(i=0;i<N;i++){         for(j=0;j<M;j++)             printf("%d\t",a[i][j]);             printf("
");     }     printf("B:
");     for(i=0;i<M;i++){         for(j=0;j<N;j++)             printf("%d\t",b[i][j]);             printf("
");     }     if(N==M){             printf("A+B=B+A:
");         for(i=0;i<N;i++){             for(j=0;j<M;j++)                 printf("%d\t",a[i][j]+b[i][j]);                 printf("
");         }     }     printf("AxB:
");     int sum;     for(i=0;i<N;i++){         for(j=0;j<N;j++){             sum=0;                 for(k=0;k<M;k++){         //        printf("%d,%d\t",a[i][k],b[k][j]);                 sum += a[i][k]*b[k][j];             }     //        printf("%d
",sum);             c[i][j]=sum;         }     }     for(i=0;i<N;i++){         for(j=0;j<N;j++)             printf("%d\t",c[i][j]);             printf("
");     }     printf("BxA:
");     for(i=0;i<M;i++){         for(j=0;j<M;j++){             sum=0;                 for(k=0;k<N;k++){             //    printf("%d,%d\t",a[i][k],b[k][j]);                 sum += b[i][k]*a[k][j];             }     //        printf("
");             d[i][j]=sum;         }     }     for(i=0;i<M;i++){         for(j=0;j<M;j++)             printf("%d\t",d[i][j]);             printf("
");     }     printf("
");         return 0; }