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;


}

}

Hoàng Mạnh Thắng viết 21:39 ngày 30/09/2018

Nó báo lỗi gì khi bạn gcc ?

Gió viết 21:33 ngày 30/09/2018

Không phải đổi chỗ không dc mà là for thứ 2 trong sắp xếp bị sai thay i++=j++

Trần Minh Trang 2000 viết 21:35 ngày 30/09/2018

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.

Trần Minh Trang 2000 viết 21:38 ngày 30/09/2018

@Gio e sửa rồi

Bài liên quan
0