您的位置:首页 > 编程语言

矩阵的乘法-编程心得

2011-10-26 10:07 267 查看
今天做了一个关于矩阵乘法的程序,虽然说编程的思想比较好理解,但是也确实遇到了一些麻烦。
#include <stdio.h>

int main()
{
int a[2][3],b[3][4];//定义两个矩阵,一会儿我们将它们相乘.
int c[2][4]={0};//这里保存的结果矩阵,注意,要初始化为0.也可以这样写int c[2][4]={{0,0,0,0},{0,0,0,0}};
int i,j,k;
printf("Please input a 2*3 matrix:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf("%d", *(a+i)+j);//输入第一个矩阵。这里注意,一个星号的表示地址
}
}

printf("Please input a 3*4 matrix:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d", *(b+i)+j));//输入第一个矩阵。
}
}

printf("Starting to calculate:\n");

for(i=0;i<2;i++)
{
for(k=0;k<3;k++)
{
for(j=0;j<4;j++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];//矩阵乘法的计算。注意,第一个矩阵的列数要和第二个矩阵的行数一致
}
}
}

printf("The result is:\n");
for(i=0;i<2;i++)
{
for(j=0;j<4;j++)
{
printf("%d ", *(*(c+i)+j);//两个星号的表示二维数组的内容
// printf("%d ",c[i][j]);//我们也可以用这种形式进行二维数组的输出
}
printf("\n");
}
printf("\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: