还是编程题~C语言~~~~~~~高分求~~~~

来源:百度知道 编辑:UC知道 时间:2024/06/20 08:10:29
如果矩阵A乘以B得到C,则必须满足如下的规则:
⑴矩阵A的列数等于矩阵B的行数;
⑵矩阵A的行数等于矩阵C的行数;
⑶矩阵B的列数等于矩阵C的列数;
矩阵相乘的乘法公式为:
编写函数int MultiMatrix(int a[][4], int arow, int acol,int b[][5], int brow, int bcol,int c[][5], int crow, int ccol)用于求解整数矩阵的乘积,其中参数a、b和c分别表示存储乘数、被乘数以及乘积结果的二维数组,arow和acol、brow和bcol以及crow和ccol分别表示矩阵a的行数和列数、矩阵b的行数和列数以及矩阵c的行数和列数,且该函数被调用时的实参满足:acol<=4、bcol<=5及ccol<=5。MultiMatrix()函数当提供的矩阵不满足矩阵相乘的条件时该函数返回1,否则返回0,请完成该函数并编写主函数验证之。

晕,我已经回答了你3贴了,大哥,给些分啦~~

给,已经编译运行确认:
int MultiMatrix(int a[3][4], int arow, int acol,
int b[4][5], int brow, int bcol,
int c[3][5], int crow, int ccol)
{
if(!((acol==brow)&&(crow==arow)&&(ccol==bcol))) //正确性检查
return 1;

for(int i=0; i<crow; i++) //行
for(int j=0; j<ccol; j++){ //列
c[i][j]=0;

for(int n=0; n<acol; n++)
c[i][j]+= a[i][n] * b[n][j];
}
return 0;
}

验证用的代码如下:
#include<conio.h>
#include<stdio.h>

int a[3][4]={{ 5, 7, 8, 2},
{-2, 4, 1, 1},
{ 1, 2, 3, 4}};

int b[4][5]={{4,-2, 3, 3, 9},
{4, 3, 8,-1, 2},
{2, 3, 5, 2, 7},
{1, 0, 6, 3, 4}};

int c[3][5];

int MultiMatrix(int a[3][4], int arow, int acol,
int b[4][5], int brow, int bcol,
int c[3][5], int crow, int ccol)
{
if(!((acol==brow)&&(crow==arow)&&(ccol==bcol))) //正确性检查
return 1;