01/10/2018, 15:01

Nhờ fix hộ code ma trận chuyển vị

#include <iostream>
using namespace std;
void NhapMaTran(float *a,int x,int y)
{
	for (int i = 0; i < x; i++)
		for (int j = 0; j < y; j++)
			cin >> *(a + i*j + j);
}
void XuatMaTran(float *a, int x, int y)
{
	for (int i = 0; i < x; i++)
	{
		for (int j = 0; j < y; j++)
			cout << *(a + i*j + j) << "    ";
		cout << endl;
	}
}
void MaTranChuyenVi(float *a, int x, int y)
{
	for (int i = 0; i < y; i++)
	{
		for (int j = 0; j < x; j++)
			cout << *(a + i*j + i) << "    ";
		cout << endl;
	}
}
int main()
{
	float *a;
	int x,y;
	cout << "Nhap kich thuoc ma tran
";
	cout << "Nhap so hang
";
	cin >> x;
	cout << "Nhap so cot
";
	cin >> y;
	a = new float[x*y];
	NhapMaTran(a, x, y);
	cout << "Ma tran ban vua nhap nhu sau 
";
	XuatMaTran(a, x, y);
	cout << "Ma tran chuyen vi 
";
	MaTranChuyenVi(a, x, y);
    return 0;
}

Chả hiểu sao nó lại đổi giá trị của mấy số như vầy nữa. Các bác fix hộ em.
Thanks !!!

Evil Artist viết 17:06 ngày 01/10/2018

cin >> *(a + i*j + j);

Thêm cout << (i*j + j) << endl; để debug nhé

Bài liên quan
0