30/09/2018, 16:16
Cho em ý tưởng sắp sếp dtb sinh viên tăng or giảm trong hàm khai báo struct
làm sao để sắp xếp diem trung bình sinh viên ,em lam hoài không ra đoạn code cua em.
chỉ cần cho ý tưởng là dc rồi.tks
struct HocSinh
{
char hoten[30];
int mssv;
char lop[30];
char khoa[30];
int toana1;
int vatly;
int laptrinh;
float dtb;
};
typedef struct HocSinh HOCSINH;
struct manghocsinh
{
HOCSINH a[100];
int n;
};
typedef struct manghocsinh MANGHOCSINH;
void nhap(HOCSINH &);
void nhap(MANGHOCSINH &);
void xuat(HOCSINH);
void xuat(MANGHOCSINH);
void xuly(HOCSINH &);
void xuly(MANGHOCSINH &);
void nhap(HOCSINH &x)
{
printf("Nhap Ho-Ten: ");
fflush(stdin);gets(x.hoten);
printf("Ma so sinh vien la: ");
scanf("%d",&x.mssv);
printf("Ten Lop: ");
fflush(stdin);gets(x.lop);
printf("Ten Khoa: ");
fflush(stdin);gets(x.khoa);
printf("Nhap diem toan: ");
scanf("%d",&x.toana1);
printf("Nhap diem vat ly : ");
scanf("%d",&x.vatly);
printf("Nhap diem laptrinh: ");
scanf("%d",&x.laptrinh);
}
void xuat(HOCSINH x )
{
printf("
");
puts(x.hoten);
printf("
Ma so sinh vien la: %d",x.mssv);
printf("
");
puts(x.lop);
printf("
");
puts(x.khoa);
printf("
Diem toan: %d",x.toana1);
printf("
Diem vat ly : %d",x.vatly);
printf("
Diem lap trinh: %d",x.laptrinh);
printf("
");
printf("Diem trung binh: %f",x.dtb);
}
void xuly(HOCSINH &x)
{
x.dtb = (float)(x.toana1 + x.vatly + x.laptrinh ) / 3;
}
void nhap(MANGHOCSINH &x)
{
printf("Nhap so luong hs: ");
scanf("%d", &x.n);
for(int i=0;i<x.n;i++)
{
nhap(x.a[i]);
}
}
void xuly(MANGHOCSINH &x)
{
for(int i=0;i<x.n;i++)
{
xuly(x.a[i]);
}
}
void xuat(MANGHOCSINH x)
{
for(int i=0;i<x.n;i++)
{
xuat(x.a[i]);
}
}
void main()
{
MANGHOCSINH hs;
nhap(hs);
xuly(hs);
xuat(hs);
getch();
}
Bài liên quan
@Gio giỏi quá, nhưng nên giải thích cho @Chaylok_C_u hiểu với, anh nghĩ @Chaylok_C_u không hiểu cách em giải quyết đâu
Tham số thứ 3 của std::sort() trong C++ là 1 Functor. Hàm compare trên sẽ đóng vai functor đó thôi mà
Với giá trị trả về là (x->dtb) - (y->dtb) sẽ là sắp xếp giảm dần.
Giải thích rõ thêm tý đi anh.chưa hiểu với cách viết của anh
máy cái mũi tên -> với cái sao * ở trên đầu chưa học nên không hiểu lắm
Để hiểu cái dấu
->
thì em xem bài này. Còn * là con trỏ thôi. Em đã học con trỏ chưa?dạ chưa ,vài ngày nữa mới học .