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;
}