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