矩阵乘法运算

发布时间 2023-11-30 12:02:51作者: Rabbit_XIN

代码是对整数的 如果要对小数的话 改个字符就OK啦

用途没有 就是做线性代数怕计算罢了

#include <stdio.h>

void createMatrix(int a[10][10], int m, int n) {
    for (int i = 0;i < m; ++i) {
        for (int j = 0;j < n; j++) {
            scanf_s("%d", &a[i][j]);
        }
    }
}

void inputMatrix(int a[10][10], int m, int n) {
    for (int i = 0;i < m; ++i) {
        for (int j = 0;j < n; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
}

void calculateMatrix(int a[10][10], int b[10][10], int c[10][10],int s,int n, int m) {
    for (int i = 0; i < 10;++i)
        for (int j = 0;j < 10;++j)
            c[i][j] = 0;
    for (int i = 0;i < s;++i) {
        for (int t = 0;t < m;++t) {
            for (int j = 0;j < n;++j) {
                c[i][t] = c[i][t] + a[i][j] * b[j][t];
            }
        }
    }
}
int main()
{
    int a[10][10], b[10][10], c[10][10];
    int s, n1, n2, m;
    printf("矩阵A几行几列:");
    scanf_s("%d %d", &s, &n1);
    printf("矩阵B几行几列:");
    scanf_s("%d %d", &n2, &m);
    if (n1 != n2) {
        printf("矩阵A与矩阵B无法相乘\n");
        return 0;
    }
    printf("输入矩阵A:\n");
    createMatrix(a, s, n1);
    printf("输入矩阵B:\n");
    createMatrix(b, n2, m);
    calculateMatrix(a, b, c, s, n1, m);
    printf("矩阵C结果计算为:\n");
    inputMatrix(c, s, m);
    return 0;