现在的位置: 首页 > 综合 > 正文

矩阵的乘法-编程心得

2013年06月23日 ⁄ 综合 ⁄ 共 747字 ⁄ 字号 评论关闭

 今天做了一个关于矩阵乘法的程序,虽然说编程的思想比较好理解,但是也确实遇到了一些麻烦。

#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;
}

抱歉!评论已关闭.