Lỗi sắp xếp bằng Selection Sort

Đề yêu cầu tạo một struct HangHoa gồm Tên, Mã, Khối lượng hàng và khoảng cách giao hàng. Rồi sắp xếp khoảng cách theo thứ tự tăng dần rồi in ra dãy đó. Em dùng Selection Sort thì Code Block báo lỗi. Các bác coi giúp em sai chỗ nào với ạ

#include <iostream>
#include <    fstream>

using namespace std;

struct HangHoa
{
       char MaHang[7];
       char TenHang[20];
       float KhoiLuong;
       float KhoangCach;
};

void HoanVi(int &a, int &b)
  {        	
        int tam = a;
        a = b;
        b = tam;
        }

void SapXep(HangHoa* Ds, int n)
{
        for (int i = 1; i < n - 1; i++)
        {
        	int min = i;
        	for (int j = i + 1; j < n; j++)
        	{
        		if (Ds[j].KhoangCach < Ds[min].KhoangCach) min = j;
        		if (min != i) HoanVi(Ds[i], Ds[min]); //Lỗi ở dòng này
        	}
        }
}

Em cần hoán vị 2 đối tượng hàng hóa nhưng lại dùng hàm hoán vị 2 số nguyên ??? Em sửa lại đi.

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