Dùng con trỏ viết hàm đảo ngược 1 mảng 1 chiều lưu trữ số nguyên

Mọi người xem giúp em sai ở đâu vậy ạ lúc in nó chỉ in ra mảng mình nhập chứ không in ra mảng đảo ngược ạ.

#include <iostream>
using namespace std;
#define size  30
void khoiTao(int*& a, int n)
{
	a = new int[n];
	for (int i = 0; i < n; i++)
	{
		cout << "Nhap gia tri cho phan tu thu " << i + 1 << ": ";
		cin >> a[i];
	}
}
void daoNguoc(int*& a, int n)
{
	int j = n - 1;
	for (int i = 0; i < n; i++)
	{
		if (j != i)
		{
			int tmg = a[i];
			a[i] = a[j];
			a[j] = tmg;
		}
		j--;
	}
}
void xuat(int* a, int n)
{
	for (int i = 0; i < n; i++)
		cout << a[i] << " ";
	cout << endl;
}
int main()
{
	int n;
	int* p;
	do {
		cout << "Nhap so luong phan tu cua mang: ";
		cin >> n;
		if (n <= 0) cout << "ERROR!!!";
	} while (n <= 0);
	p = new int[n];
	khoiTao(p, n);
	daoNguoc(p, n);
	xuat(p, n);
	system("pause");
	return 0;
}

Khởi tạo 2 con trỏ *p, *q: p trỏ vào đầu mảng và q trỏ vào cuối mảng. Lúc này biểu thức p < q mới có nghĩa. Sau đó chạy p lên và q xuống.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?