洛谷P1093 獎學金

2021-10-19 18:58:42 字數 878 閱讀 1470

此題分三次排序,第一次總分排序,如果總分一樣,那麼語文分數高者靠前,如果語文分數相同,那麼看學號,學號小的名詞靠前。

我的解法:設定了乙個stu的結構體,將一名同學的總分,學號和語文分數放在其中,再利用qsort對總分進行排序,然後對成績相同者做相關處理即可。

(陣列)交換函式:

void swap(int *a,int *b)
qsort中cmp函式對結構體排序的寫法:(其中的stu是結構體的名字)

int cmp(const void *a,const void *b)
#include #include #include #include #define ll long long

#define max_int 2147483647

using namespace std;

int flag = 0;

int n;

typedef structstu;

void swap(int *a,int *b)

int cmp(const void *a,const void *b)

int main()

qsort(stu,n,sizeof(stu[0]),cmp);

if(n > 5)

for(int i = 0 ;i < n; i++)else if(stu[i].chinese == stu[i+1].chinese)

}else

}printf("%d %d\n",stu[i].no+1,stu[i].score);

}return 0;

}

洛谷 P1093 獎學金

某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面,這樣,每個學生的排序是唯一確定的。...

洛谷 P1093 獎學金

題目描述 某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面,這樣,每個學生的排序是唯...

洛谷 P1093 獎學金

某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面,這樣,每個學生的排序是唯一確定的。...