/**
*二维数组的矩阵输出和矩阵翻转的变化
*/
//矩阵a和b都是两行两列,矩阵相乘时,a的行元素乘以b的列元素,然后相加
//下面时一个手写图
#include <stdio.h>
int main()
{ int a[3][3],b[3][2];
int i,j;
//对数组的数字输入
for(i=0;i<3;i++)//输入行a【3】
{
for(j=0;j<3;j++)//输入列b【】【3】
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)//输入行b【3】
{
for(j=0;j<2;j++)//输入列b【】【3】
{
scanf("%d",&b[i][j]);
}
}
//进行矩阵的相乘
/*需要注意的是矩阵的相乘两个矩阵一个相同点
例如a矩阵的 列 要和b矩阵的 行 个数相同,
因为下面需要进行三个for循环进行循环,要
设计一个 k 的特殊变量,遍历a和b的数组,
因为他们的和c的行和列是不对应的变化,但有
两个量的变化是相同的,这样就能使用了。
*/
int k;
int c[3][2]=0;//这里需要这样写出来
//下面进行遍历到c的数组里面
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{//前面的两个for循环是对于c进行设计的,分别是c的行和列
for(k=0;k<3;k++)//k表示a的列和b的行,大家都是3,这样就能遍历
{
//因为 矩阵a和b都是两行两列,矩阵相乘时,a的行元素乘以b的列元素,然后相加
c[i][j]+=a[i][k]+b[k][j];
}
}
}
//输出变化后的矩阵
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("%d",c[i][j]);
}
}
return 0;
}
/**
*二维数组的矩阵输出和矩阵翻转的变化
*/
//矩阵a和b都是两行两列,矩阵相乘时,a的行元素乘以b的列元素,然后相加
//下面时一个手写图
//下面就是矩阵的反转方法
//其实很简单理解就是两个数组,行和列相互交换
#include <stdio.h>
int main()
{ int a[3][2];
int b[2][3];
//输入第一个数组的数字
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",a[i][j]);
}
}
//进行数组的录入
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
a[i][j]=b[j][i];//简单地一换,就是这样完成了那个转换
}
}
return 0;
}
关于数组的矩阵相乘与翻转
最新推荐文章于 2022-11-13 00:20:14 发布