Em code sai chỗ nào vậy ạ

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
    struct DanhSachHang
    {
        char MH[7];
        char Tenhang[20];
        float Khoiluong;
        float Khoangcach;
    };

void NhapDuLieu (DanhSachHang a){
    gets(a.MH);
    gets(a.Tenhang);
    cin>>a.Khoiluong>>a.Khoangcach;
}
void XuatDuLieu(DanhSachHang a){
        cout << a.MH<<"\t";
        cout << a.Tenhang<<"\t";
        cout << a.Khoiluong<<"\t";
        cout << a.Khoangcach<<"\t";

}
void NhapDuLieu(DanhSachHang *DS,int &n){
    cin>>n;
    for (int i=0;i<n;i++)
    {
        cin.ignore();
        NhapDuLieu(DS[i]);
    }

}

void XuatDuLieu(DanhSachHang DS, int n){
    for (int i=0;i<n;i++)
    {
        XuatDuLieu(DS[i]);
        cout<<"/n";
    }

}
int main(){
    int a;
    int n;
    DanhSachHang a;
    NhapDuLieu(a);
    XuatDuLieu(a);

    return 0;
}
```

Mình ko học C++ nên đoán đại, có lẽ là do hàm NhapDuLieu() phải dùng tham chiếu & mới đúng?

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