zoukankan      html  css  js  c++  java
  • PAT 天梯赛 L1-048. 矩阵A乘以B 【数学】

    题目链接

    https://www.patest.cn/contests/gplt/L1-048

    题意

    给出两个矩阵,先判断两个矩阵能不能相乘,如果可以,就输出相乘 结果,如果不行 则按格式输出error

    思路

    先判断 第一个矩阵的列数 和第二个矩阵的行数 是否相等,如果相等就输出相乘结果,如果不相等 按格式输出ERROE

    AC代码

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    #include <deque>
    #include <vector>
    #include <queue>
    #include <string>
    #include <cstring>
    #include <map>
    #include <stack>
    #include <set>
    #include <cstdlib>
    #include <ctype.h>
    #include <numeric>
    #include <sstream>
    using namespace std;
    
    typedef long long LL;
    const double PI  = 3.14159265358979323846264338327;
    const double E   = 2.718281828459;  
    const double eps = 1e-6;
    const int MAXN   = 0x3f3f3f3f;
    const int MINN   = 0xc0c0c0c0;
    const int maxn   = 1e2 + 5; 
    const int MOD    = 1e9 + 7;
    int a[maxn][maxn], b[maxn][maxn], c[maxn][maxn];
    
    int main()
    {
        int x1, y1;
        int x2, y2;
        cin >> x1 >> y1;
        int i, j, k;
        memset(a, 0, sizeof(a));
        memset(b, 0, sizeof(b));
        memset(c, 0, sizeof(c));
        for (i = 0; i < x1; i++)
        {
            for (j = 0; j < y1; j++)
            {
                scanf("%d", &a[i][j]);
            }
        }
        cin >> x2 >> y2;
        for (i = 0; i < x2; i++)
        {
            for (j = 0; j < y2; j++)
            {
                scanf("%d", &b[i][j]);
            }
        }
        if (y1 != x2)
        {
            printf("Error: %d != %d
    ", y1, x2);
        }
        else
        {
            printf("%d %d
    ", x1, y2);
            int num = 0;
            for (i = 0; i < x1; i++)
            {
                for (j = 0; j < y2 ; j++)
                {
                    if (j)
                        printf(" ");
                    num = 0;
                    for (k = 0; k < x2; k++)
                    {
                        num += a[i][k] * b[k][j];
                    }
                    cout << num;
                }   
                cout << endl;
            }   
        }
    }
    
  • 相关阅读:
    VS密钥
    继承中delelte对象子类析构函数不被执行
    [LeetCode] Merge k Sorted Lists
    [LeetCode] Spiral Matrix II
    [LeetCode] Multiply Strings
    [LeetCode] Valid Number
    [LeetCode] Search Insert Position
    [LeetCode] Spiral Matrix
    [LeetCode] Valid Parentheses
    [LeetCode] Rotate List
  • 原文地址:https://www.cnblogs.com/Dup4/p/9433306.html
Copyright © 2011-2022 走看看