并不是很难的问题,但是自己思考测试独立完成的,保存于此,给自己一点鼓励。
/* 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",N,M); for(i=0;i<N;i++){ for(j=0;j<M;j++){ scanf("%d",&a[i][j]); } } printf("Input B[%d][%d]=\n",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:\n"); for(i=0;i<N;i++){ for(j=0;j<M;j++) printf("%d\t",a[i][j]); printf("\n"); } printf("B:\n"); for(i=0;i<M;i++){ for(j=0;j<N;j++) printf("%d\t",b[i][j]); printf("\n"); } if(N==M){ printf("A+B=B+A:\n"); for(i=0;i<N;i++){ for(j=0;j<M;j++) printf("%d\t",a[i][j]+b[i][j]); printf("\n"); } } printf("AxB:\n"); 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\n",sum); c[i][j]=sum; } } for(i=0;i<N;i++){ for(j=0;j<N;j++) printf("%d\t",c[i][j]); printf("\n"); } printf("BxA:\n"); 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("\n"); d[i][j]=sum; } } for(i=0;i<M;i++){ for(j=0;j<M;j++) printf("%d\t",d[i][j]); printf("\n"); } printf("\n"); return 0; }
原文地址:http://swordautumn.blog.51cto.com/1485402/1630091