華爲OJ題目(十七):矩陣乘法


//矩陣乘法

#include <iostream>
using namespace std;
void matrix_multiply(int *m1, int*m2, int*r, int x, int y, int z)
{
	for (int i = 0; i < x;i++)
		for (int j = 0; j < y;j++)
			for (int k = 0; k < y;k++)
			{
				*(r + i*z + j) += *(m1 + i*y + k)**(m2 + k*z + j);
			}
}
int main()
{
	int x, y, z;
	cin >> x>>y>>z;
	int *array1 = new int[x*y];
	int *array2 = new int[y*z];
	int *array3 = new int[x*z];
	for (int i = 0; i < x;i++)
		for (int j = 0; j < y;j++)
		{
			cin >> *(array1+i*y+j);
		}
	for (int i = 0; i < y; i++)
		for (int j = 0; j < z; j++)
		{
			cin >> *(array2 + i*z + j);
		}
	for (int i = 0; i < x;i++)
		for (int j = 0; j < z; j++)
		{
			*(array3 + i*z + j) = 0;
		}
	matrix_multiply(array1, array2, array3, x, y, z);
	for (int i = 0; i < x;i++)
	{
		for (int j = 0; j < z-1 ; j++)
			cout << *(array3 + i*z + j) << " ";
		cout << *(array3 + i*z + z - 1) << endl;
	}
	delete array1;
	delete array2;
	delete array3;
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章