Giúp chạy thử chương trình xem chạy được không

máy ko báo lỗi nhưng khi chạy thì nó cứ đơ em đang nghi một do code còn hai do máy code thì em kiểm tra ko thấy chỗ nào bất ổn nên nhờ mọi người giúp chạy trên máy tinhd của mọi người xem có được không ạ

/* sắp xếp đoạn sau :
1 5 8 9 12 4
*/
#include<iostream>
using namespace std ;
int a[15];
void quicksort(int left,int right,int a[])
{
   
    int chot=a[(left+right)/2];
    int l=left ;
    int r=right;
    do
    {
        /* code */
    while(chot>a[left])
        {l++;}
    while(chot<a[right])
        {r--;}
    if(l<=r)
        {
            int t=a[l];
            a[l]=a[r];
            a[r]=t;
            l++;
            r--;
           
        }
   
    } while (l<=r);
   
    if(left<r)
    {
        quicksort(left,r,a);
    }
    if(l<right)
    {
        quicksort(l,right,a);
    }
}
int main()
{
    int a[]={1,5,8,9,12,4};
int left=0;
int right=(sizeof(a)/sizeof(a[0]))-1;
quicksort(left,right,a);
for(int i=0;i<=right;i++)
{
    cout<<a[i]<<"\t";
}
}

Infinite loop ở đây:

// Condition này luôn đúng với bộ data này do so sánh phần tử chốt với a[left], left ko đổi gì cả, tương tự với loop bên dưới. a[l] và a[r] mới đúng
    while(chot>a[left])
        {l++;}
    while(chot<a[right])
        {r--;}

Tìm hiểu thêm kỹ năng debug để phát hiện những sai sót trong thuật toán kiểu này

4 Likes

dạ em cảm ơn anh nhiều ạ

anh đã bao giờ bị cái lỗi là mình muốn debug ấy thì nó hiện ra là file mình chọn ko tồn tại chưa ạ ?
em đã thử thay đổi và sửa link cho phù hợp nhưng không được á anh

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