本文将详细说明如何用C语言求两个矩阵的乘积。这篇文章的内容质量很高,所以边肖会分享给大家参考。希望你看完这篇文章后有所了解。
00-1010在数学中,矩阵是按照矩形阵列排列的一组复数或实数。矩阵是高等代数中的常用工具,在统计分析等应用数学学科中也很常见。
矩阵的乘法有以下注意事项:
1.当矩阵a的列数等于矩阵b的行数时,a和b可以相乘。
2.矩阵C的行数等于矩阵A的行数,C的列数等于b的列数。
3.乘积C的第m行和第n列中的元素等于矩阵A的第m行中的元素与矩阵b的第n列中的对应元素的乘积之和。
代码实现:只需要用矩阵乘积的公式就可以找到一个新的矩阵,也就是两个矩阵的乘积。在程序中,还需要判断两个矩阵是否可以相乘。
分析
# includes dio . h
intmain()
{
int line _ a=0;//矩阵行数
int col _ a=0;//矩阵的列数
int line _ b=0;//B矩阵行数
int col _ b=0;//B矩阵的列数
inti=0;
int j=0;
int k=0;
/*获取矩阵A的行数和列数*/
Printf('请输入矩阵的行数和列数\ n ');
scanf('%d%d ',line_a,col _ a);
int matrix _ A[line _ A][col _ A];
/*获取B矩阵的行数和列数*/
Printf('请输入B矩阵的行数和列数\ n ');
scanf('%d%d ',line_b,col _ b);
int matrix _ B[line _ B][col _ B];
if(col_a!=line_b)
{
Printf('错误,矩阵A的列数和矩阵B的行数必须相等!\ n ');
返回0;
}
int matrix _ C[line _ a][col _ b];//C矩阵:a矩阵和b矩阵的乘积。
/*获取矩阵元素*/
for(I=0;iline _ a;(一)
{
Printf('请在矩阵的第%d行输入元素\n ',I);
for(j = 0; j < col_a; j++)
{
scanf("%d", &matrix_A[i][j]);
}
}
/* 获取B矩阵元素 */
for(i = 0; i< line_b; i++)
{
printf("请输入B矩阵第%d行元素\n", i);
for(j = 0; j < col_b; j++)
{
scanf("%d", &matrix_B[i][j]);
}
}
/* 打印矩阵 */
printf("输入的A矩阵为:\n");
for(i = 0; i < line_a; i++)
{
for(j = 0; j < col_a; j++)
{
printf("%d\t", matrix_A[i][j]);
}
printf("\n");
}
printf("输入的B矩阵为:\n");
for(i = 0; i < line_b; i++)
{
for(j = 0; j < col_b; j++)
{
printf("%d\t", matrix_B[i][j]);
}
printf("\n");
}
/* 求AB的乘积,即矩阵C */
for(i = 0; i < line_a; i++)
{
for(j = 0; j < col_b; j++)
{
matrix_C[i][j] = 0; //初始化
for(k = 0; k < col_a; k++)
matrix_C[i][j] += matrix_A[i][k] * matrix_B[k][j];
}
}
/* 打印C矩阵 */
printf("A矩阵乘B矩阵:\n");
for(i = 0; i < line_a; i++)
{
for(j = 0; j < col_b; j++)
{
printf("%d\t", matrix_C[i][j]);
}
printf("\n");
}
return 0;
}
运行结果
关于C语言中如何求两个矩阵的乘积就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/84018.html