30/09/2018, 23:21

Gặp lỗi khi sắp xếp mảng bằng con trỏ

Source code:

void NhapMang(int *a, int n)
{
	for (int i = 0; i < n; i++)
	{
		printf("
Nhap a[%d] = ", i);
		scanf("%d", &a[i]);
	}
}
void Xuatmang(int *a, int n)
{
	for (int i = 0; i < n; i++)
		printf("%5d", a[i]);
}
void HoanVi(int &x, int &y)
{
	int Temp = x;
	x = y;
	y = Temp;
}
void SortArr(int *a, int n, char radix)
{
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = i + 1; j < n; j++)
		{
			if (radix == 't')
			{
				if (a[i] > a[j])
					HoanVi(a[i], a[j]);
			}
			if (radix == 'g')
			{
				if (a[i] < a[j])
					HoanVi(a[i], a[j]);
			}
		}
	}
}
int main()
{
	int *a, n;
	do
	{
		printf("
Nhap so luong phan tu: ");
		scanf("%d", &n);
		if (n < 0)
			printf("
So luong phan tu khong hop le
");
	} while (n < 0);
	a = (int *)calloc(n, sizeof(int *));
	NhapMang(a, n);
	Xuatmang(a, n);
	char radix;
	printf("
Ban muon sap xep mang tang hay giam? ");
	scanf("%c", &radix);
	if (radix == 't')
	{
		printf("
Mang sau khi sap xep tang dan: ");
		SortArr(a, n, radix);
		Xuatmang(a, n);
	}
	else
	{
		printf("
Mang sau khi sap xep giam dan: ");
		SortArr(a, n, radix);
		Xuatmang(a, n);
	}
	free(a);
	getch();
	return 0;
}

Tới bước sắp xếp nó không cho em nhập chỉ số Tăng hay Giảm mà bỏ qua là sao mn ?

Tao Không Ngu. viết 01:27 ngày 01/10/2018

This post was flagged by the community and is temporarily hidden.

Mai Anh Dũng viết 01:29 ngày 01/10/2018

Vũ xem giúp anh thử

@nguyenchiemminhvu

Sơn viết 01:30 ngày 01/10/2018

Trong bộ đệm vẫn còn kí tự ‘\n’, bạn thêm dòng rewind(stdin) sau dòng khai báo biến char radix

Long Dragon viết 01:34 ngày 01/10/2018

Mình làm được rồi, thanks mọi người nhé

Bài liên quan
0