用C语言写一个算法求两个矩阵的乘法运算。

2024-11-25 00:10:27
推荐回答(3个)
回答1:


//有关对齐和数组大小数值问题,自己另外解决
/* Note:Your choice is C IDE */
#include "stdio.h"

//矩阵arra和矩阵arrc的 行数 必须相等,这里为ROW
//矩阵arrb和矩阵arrc的 列数 必须相等,这里为COL
//矩阵arra的列数和矩阵arrb的行数必须相等,这里为MID
//arrc[r][c]=arra[r][0]*arrb[0][c] + arra[r][1]*arrb[1][c]

#define ROW 2  
#define COL 3
#define MID 2

void print_array(int arrc[][COL]);
void main()
{
    int c,r,m;
    int arra[ROW][MID]={
       {1,1},
       {2,0}};
     
    int arrb[MID][COL]={
        {0,2,3},
        {1,1,2}};
    
    int arrc[ROW][COL]={0};
    
    for(r=0;r    {
     for(c=0;c     {
     for(m=0;m     {
     arrc[r][c]+=arra[r][m] * arrb[m][c];
     }
     }
    }
    
    print_array(arrc);
    
}

void print_array(int arrc[][COL])
{
int r,c;

for(r=0;r    {
     for(c=0;c     {
    
     printf("%d ",arrc[r][c]);
    
     }
     printf("\n");
    }
}

回答2:

请搜索百度百科“矩阵相乘”

回答3:

include
#include
#include
#include
using namespace std;
int main()
{
int row1,row2,col1,col2;
cout<<"Please input the row and col of the first matrix: "< cin>>row1>>col1;
cout< cout<<"Please input the row and col of the second matrix: "< cin>>row2>>col2;
cout< float a[100][100],b[100][100],c[100][100];
fstream outfile;
if(col1==row2)
{
outfile.open("1.txt");
}
for(int i=0;i {
for(int j=0;j {
outfile>>a[i][j];
}
}
outfile.close();