• 1127 矩阵乘积


    题目来源:
    https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1127
    Description
    计算两个矩阵A和B的乘积。
    Input
    第一行三个正整数m、p和n,0<=m,n,p<=10,表示矩阵A是m行p列,矩阵B是p行n列;
    接下来的m行是矩阵A的内容,每行p个整数,用空格隔开;
    最后的p行是矩阵B的内容,每行n个整数,用空格隔开。
    Output
    输出乘积矩阵:输出占m行,每行n个数据,以空格隔开。
    Sample Input
    2 3 4

    1 0 1
    0 0 1

    1 1 1 3
    4 5 6 7
    8 9 1 0
    Sample Output
    9 10 2 3
    8 9 1 0
    题意描述:
    输入三个正整数m、p和n,0<=m,n,p<=10,表示矩阵A是m行p列,矩阵B是p行n列
    m行p列的矩阵A
    p行n列的矩阵B
    计算并输出这两个矩阵的乘积
    计算方法如下:

    概括来讲,矩阵A的第i行对应乘以矩阵B的第j列的数之和 等于结果矩阵第i行第j列的数

    解题思路:
    根据矩阵的计算规律写出三重for循环计算输出即可
    程序代码:

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int m,n,p,a[12][12],b[12][12],i,j,k,sum;
     5     
     6     scanf("%d%d%d",&m,&p,&n);
     7     for(i=1;i<=m;i++)
     8         for(j=1;j<=p;j++)
     9             scanf("%d",&a[i][j]);
    10     for(i=1;i<=p;i++)
    11         for(j=1;j<=n;j++)
    12             scanf("%d",&b[i][j]);
    13     
    14     for(i=1;i<=m;i++) {
    15         for(k=1;k<=n;k++) {
    16             for(sum=0,j=1;j<=p;j++)
    17                 sum += a[i][j]*b[j][k];
    18             if(k==1)
    19                  printf("%d",sum);
    20             else
    21                 printf(" %d",sum);
    22         }
    23         printf("
    ");
    24     }
    25     return 0;
    26  } 
  • 相关阅读:
    排序算法
    各种容器
    avl树
    zhenya moves from parents
    maven 相关
    Spring Cloud 子项目介绍
    WebStorm 中 dva 项目用 start 命令需要不断重启项目问题
    git常用命令
    SQL 的各种 join 用法
    程序员成长过程
  • 原文地址:https://www.cnblogs.com/wenzhixin/p/6804886.html
Copyright © 2020-2023  润新知