用c语言实现两个矩阵相乘怎么做?
1、程序运行输入数据时,第一行为A矩阵的行列数和B矩阵的行列数,接着分别输入A、B两个矩阵的值。2、首先,定义6个整型变量,保存A、B矩阵的行和列,以及控制循环的变量,k则用于实现矩阵的乘法。3、接着,定义三个整型二维数组,保存A、B和C矩阵的各元素。4、输入三个矩阵的行数和列数,保存在变量a、b、c中。5、输入矩阵A的各元素,保存在数组X中。6、输入矩阵B的各元素,保存在数组Y中。7、将二维数组Z的各元素,初始化为0。8、用两层for循环,控制矩阵的乘法,并输出乘法所得的结果。9、计算A矩阵和B矩阵的乘法,结果保存在数组Z中。10、最后,输出乘法所得的结果,即输出Z数组中的所有元素。11、运行程序,输入矩阵A和B的行数和列数,以及A矩阵和B矩阵的所有元素,电脑就会计算出乘积C矩阵的所有元素,并输出C矩阵。
求高手帮忙用c语言求出两个矩阵的乘积
1、首先打开编程软件,新建一个项目,添加一个double.cpp文件,如图所示。2、包含stdio.h头文件,如图所示。3、接着输入main函数,如图所示。4、然后定义两个double类型变量并初始化,如图所示。5、使用scanf函数接受任意两个小数,计算两个小数的乘积并打印出来,如图所示。6、然后运行程序,查看结果,如图所示。
c语言:输入矩阵2行3列的矩阵A和矩阵3行4列的矩阵B,计算矩阵的乘积
#include
#include
#define L 2
#define M 3
#define N 4
void genArr(double *Arr, int row, int col)
{
int i = 0;
int n = row * col;
srand(time(NULL));
for (i = 0; i < n; ++i)
{
Arr[i] = rand() % 10;
}
}
void printMatrix(double *Arr, int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < row; ++i)
{
for (j = 0; j < col; ++j)
{
printf("%lf\t", *(Arr + i * col + j));
}
printf("\n");
}
return;
}
int main(void)
{
double A[L][M] = {{0}};
double B[M][N] = {{0}};
double C[L][N] = {{0}};
int i = 0, j = 0, k = 0;
printf("\nGenerate A[%d][%d]:\n", L, M);
genArr(&A[0][0], L, M);
printMatrix(&A[0][0], L, M);
printf("\nGenerate B[%d][%d]:\n", M, N);
genArr(&B[0][0], M, N);
printMatrix(&B[0][0], M, N);
for (i = 0; i < L; ++i)
{
for (k = 0; k < N; ++k)
{
C[i][k] = 0;
for (j = 0; j < M; ++j)
{
C[i][k] += A[i][j] * B[j][k];
}
}
}
printf("\nCalc C[%d][%d]:\n", L, N);
printMatrix(&C[0][0], L, N);
return 0;
}
c语言编程:输入两个3行4列的矩阵,计算并输出两个矩阵的和。
#include#define ROW 3//行数#define COL 4//列数void PlusMatrix(int a[ROW][COL],int b[ROW][COL],int c[ROW][COL]){ int i,j; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { c[i][j] = a[i][j] + b[i][j]; } }}void PrintMatrix(int a[ROW][COL]) //打印矩阵a的内容{ int i,j; for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { printf("%d ",a[i][j]); } printf("\n"); }}int main(){ int a[ROW][COL],b[ROW][COL],c[ROW][COL],i,j; printf("input %d*%d matrix a:\n",ROW,COL); for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { scanf("%d",&a[i][j]);//输入ROW*COL的矩阵a } } printf("input %d*%d matrix b:\n",COL,ROW); for(i=0;i<ROW;i++) { for(j=0;j<COL;j++) { scanf("%d",&b[i][j]);//输入ROW*COL的矩阵b } } PlusMatrix(a,b,c);//a*b,结果存到c printf("Results:\n"); PrintMatrix(c); return 0;}测试: