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 ?
Bài liên quan
This post was flagged by the community and is temporarily hidden.
Vũ xem giúp anh thử
@nguyenchiemminhvu
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
Mình làm được rồi, thanks mọi người nhé