30/09/2018, 19:25
Tại sao viết như thế này lại không được? (đổi chỗ 2 biến kiểu struct)
void doicho(SinhVien *a, SinhVien *b)
{
SinhVien tam = *a;
*a = *b;
*b = tam;
}
// Ham sap xep theo diem trung binh
void SapXep()
{
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n;j++)
{
if (sv[i].DTB < sv[j].DTB)
{
doicho(&sv[i], &sv[j]);
}
}
for (int i = 0; i < n; i++)
{
cout << "
Sinh Vien thu: " << i + 1 << ": " << sv[i].HoTen_.Ho << " " << sv[i].HoTen_.Ten << endl;
cout << " Sinh ngay: " << sv[i].NgaySinh_.ngay << "/" << sv[i].NgaySinh_.thang << "/" << sv[i].NgaySinh_.nam;
cout << "
Diem Toan: " << sv[i].dToan;
cout << "
Diem Ly: " << sv[i].dLy;
cout << "
Diem Hoa: " << sv[i].dHoa;
cout << "
Diem Trung Binh: " << sv[i].DTB;
}
}
Bài liên quan
Nó báo lỗi gì khi bạn gcc ?
Không phải đổi chỗ không dc mà là for thứ 2 trong sắp xếp bị sai thay i++=j++
Máy báo lỗi như thế này ạ : First-chance exception at 0x00FD435E in bai1_cau4.exe: 0xC0000005: Access violation reading location 0x002E501C.
If there is a handler for this exception, the program may be safely continued.
@Gio e sửa rồi