矩阵相乘实现

xiaoxiao2021-02-28  132

#include <stdio.h> #include <string.h> typedef struct MATRIX {     int mat[50][50]; }MAXRIX; MATRIX mat_multiply(const MATRIX &a,const MATRIX &b,const int &n) {     static int i, j, k;     static MATRIX c;          memset(c.mat, 0, sizeof(c.mat));     for(i = 0;i < n;++i)                    for(j = 0;j < n;++j)                    for(k = 0;k < n;++k)                 if(a.mat[i][k] && b.mat[k][j]) {                     c.mat[i][j] += a.mat[i][k] * a.mat[k][j];                 }     return c; } void print_matrix(const MATRIX &a,const int &n) {     static int i, j;     for(i = 0;i < n;++i) {         for(j = 0;j < n;++j)             printf("= ", a.mat[i][j]);         printf("\n");     } } int main() {     int n, i, j;     MATRIX a, b, c;          scanf("%d", &n);     printf("请输入a矩阵:\n");     // 输入a矩阵     for(i = 0;i < n;++i)         for(j = 0;j < n;++j)             scanf("%d", &a.mat[i][j]);          printf("请输入b矩阵:\n");     // 输入b矩阵     for(i = 0;i < n;++i)         for(j = 0;j < n;++j)             scanf("%d", &c.mat[i][j]);     c = mat_multiply(a, b, n);     // 打印c矩阵     print_matrix(c, n);     return 0; }
转载请注明原文地址: https://www.6miu.com/read-19609.html

最新回复(0)