A*B Problem II

题目623                   A*B Problem II

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

描述 ACM的C++同学有好多作业要做,最头痛莫过于线性代数了,因为每次做到矩阵相乘的时候,大量的乘法都会把他搞乱, 所以他想请你写个程序帮他检验一下计算结果是否正确。 输入有多组测试数据,每行给出一组m,n,k(0<m,n,k<=50)。m,n,k表示两个矩阵的大小,其中:  矩阵A:m行n列。  矩阵B:n行k列。  接下来给出m*n个数表示矩阵A和n*k个数表示矩阵B,对于每个数s,0<=s<=1000。  当m,n,k同时为0时结束。输出计算两个矩阵的乘积并输出。

样例输入

#include<stdio.h>
  int main(){
          int m,n,k;
    while(scanf("%d %d %d",&m,&n,&k),m,n,k){
    int i,j,p;
       int A[51][51],B[51][51],C[51][51];
               int s;
        for(i=0;i<m;i++)
            for(j=0;j<n;j++)
               scanf("%d",&A[i][j]);
         for(i=0;i<n;i++)
            for(j=0;j<k;j++) 
               scanf("%d",&B[i][j]);

            for(i=0;i<m;i++){
                for(p=0;p<k;p++){
                        s=0;
                    for(j=0;j<n;j++){
                       s=s+A[i][j]*B[j][p];
                    }
                       C[i][p]=s;
                }
            }
            for(i=0;i<m;i++){
                for(p=0;p<k;p++){ 
                    printf("%d ",C[i][p]);
                }
              printf("\n");
            }
    }
    return 0;
}//的类型,但第一个运行较快,
/* 
#include<stdio.h>
  int main(){
      int m,n,k;
  
    while(scanf("%d %d %d",&m,&n,&k),m,n,k){
        int i,j,p;
        int A[51][51],B[51][51],C[51][51];
          int temp;
        for(i=0;i<m;i++)
          for(j=0;j<n;j++)
            scanf("%d",&A[i][j]);
        for(i=0;i<n;i++)
          for(j=0;j<k;j++)
            scanf("%d",&B[i][j]);
         for(i=0;i<m;i++){
          for(j=0;j<k;j++){
            temp=0;
            for(p=0;p<n;p++)
            {
                temp=temp+A[i][p]*B[p][j];
            }
            C[i][j]=temp;
        }
        }
        for(i=0;i<m;i++){
        
          for(j=0;j<k;j++){
          
        printf("%d ",C[i][j]);
                         }
       printf("\n");
    }  
  }  
   return 0;
   }   

 

2 1 3

1

2

1 2 3

2 2 3

1 2 3

4 1 0

1 0 1

0 0 0

样例输出

1 2 3

2 4 6

1 2 1

3 4 3

转载于:https://www.cnblogs.com/acmgym/p/3671009.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值