CÁC BÁC XEM GIÚP EM ĐOẠN CODE SẮP XẾP DƯỚI ĐÂY EM BỊ SAI CHỖ NÀO VỚI Ạ. EM CHẠY MÀ KẾT QUẢ RA KHÔNG ĐƯỢC Ạ
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define MAX 99
void QuickSort(float a[MAX], int left, int right)
{
int i = left, j = right;
float x = a[(left+right)/2]; //luu gia tri phan tu giua mang
do
{
while(a[i] < x) //tim phan tu khong nho hon x theo i
i++;
while(a[j] > x) //tim phan tu khong lon hon x theo j
j--;
if(i <= j)
{
//hoan doi 2 phan tu tai i va j
{
int tg = a[i];
a[i]=a[j];
a[j]=tg;
}
//tang i và giam j sau khi hoan doi
i++;
j--;
}
}
while(i <= j);
if(left<j) // neu left < j thi tiep tuc chia mang de sap xep
QuickSort(a, left, j);
if(i<right) // neu right > i thi tiep tuc chia mang de sap xep
QuickSort(a, i, right);
}
int main()
{
float a[MAX];
unsigned int n;
int left = 1, right = n;
printf("Nhap so phan tu cua day so: ");
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
printf("\tNhap vao so hang thu %d: ", i);
scanf("%f", &a[i]);
}
printf("\n\n\tDay so vua nhap: ");
{
for (int i=1; i<=n; i++)
printf("\t%f ", a[i]);
}
QuickSort(a, left, right);
printf("\n\nDay so sau khi sap xep la: ");
{
for (int i=1; i<=n; i++)
printf("\t%f ", a[i]);
printf("\n\n");
}
return 0;
}


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