01/10/2018, 16:11

Giúp e dùng hàm qsort để phát triển kiểu quản lí danh sách sinh viên vs ạ!

code lượm nhưng kiểu sấp xếp ;

#include<iostream>
#include<cstdlib>
using namespace std;
 
struct St
{
    string name;
    int scores;
};
 
bool operator * ( const St &t, const St &u )    // dinh nghia phep toan "*"
{
    return t.name > u.name;  //sap xep tang dan theo ten
}
 
bool operator/( const St &t, const St &u )  // dinh nghia phep toan "/"
{
    return t.scores < u.scores;  //sap xep giam dan theo diem
}
 
int compare_name (const void * a, const void * b)
{
    return ( *( St*)a * *(St*)b );  //chi duoc su dung phep toan "*" de sap xep
}
 
int compare_scores (const void * a, const void * b)
{
    return ( *( St*)a / *(St*)b );  //chi duoc su dung phep toan "/" de sap xep
}
 
int main ()
{
    St arr[] = { {"Hien", 9}, {"Cuong", 7}, {"Nhung", 8}, {"Nam", 6} };
 
    int n = sizeof( arr ) / sizeof( St );
    qsort (arr, n, sizeof(St), compare_name);
 
    cout << "
Danh sach xap xep tang dan theo ten:
";
    for (int i = 0; i < n; i++ )
        cout << arr[ i ].name << ' ' << arr[ i ].scores << endl;
 
    qsort (arr, n, sizeof(St), compare_scores);
    cout << "
Danh sach xap xep giam dan theo diem:
";
    for (int i = 0; i < n; i++ )
        cout << arr[ i ].name << ' ' << arr[ i ].scores << endl;
 
    return 0;
}
Bài liên quan
0