Tìm lỗi sai của chương trình con xóa phẩn tử nhỏ nhất trong xâu

int nho(int a[],int n)
{
    int min=a[1],vt=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]<min) {min=a[i];vt=i;}
    }
    return vt;
}
void xoa(int a[],int &n,int vt)
{
     vt=nho(a,n);
     for(int i=vt;i<=n;i++)
        {
            a[i]=a[i+1];
        }
        n--;
}

chương trình không hoàn thiện , chả có lỗi gì để tìm cả

Tại sao là a[1] mà không phải a[0]? Chỉ số phần tử của mảng bắt dầu từ mấy?

Bạn thấy gì bất ổn không? Sao lại i<=n rồi i+1 sẽ truy xuất phần tử bao nhiêu khi i = n?

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