眾所周知,計算機院要對申請轉入計算機大類的學生進行考核,考核方式包括機試和面試。學生綜合成績採取百分制,其中50%由機試成績核算,另50%由學生已獲得的加權成績核算。綜合成績優秀者可進入面試環節。現請你寫乙個根據學生成績來確定綜合成績排名的程式。
輸入: 第一行為乙個整數n(0輸出: 共n行,按綜合成績(機試成績加加權成績)從高到低每行輸出每個學生的資訊,如果綜合成績相同,則機試成績高的學生在前。每行的格式為:乙個字串(學生學號)加三個整數(4個資料之間均用乙個空格分隔),這三個整數依次為綜合成績,機試成績和加權成績,測試用例保證輸入合法且不存在成績完全相同的學生。
程式中用的結構體定義及各成員含義如下:
typedef
struct
student;
程式中用到3個函式,分別為:
void
swap
(student * s1,student * s2)
;
其中引數s1,s2為指向兩個結構體的指標,其功能是將這兩個指標指向的結構體內的值互相交換。
int
comp
(student * s1,student * s2)
;
其中引數s1,s2為指向兩個結構體的指標,其功能是比較兩個結構體, 如果s1>s2則返回1,否則返回0。這裡s1>s2指的是s1的總分高,或者總分相同時指的是s1的機試成績高。測試用例保證輸入合法且不存在成績完全相同的學生。
void
sort
(student a,
int size)
;
其中引數a為待排序的結構體陣列,size為陣列中學生的數量。其功能是將a按題目指定規則排序。
void
swap
(student * s1,student * s2)
;
裁判測試程式樣例:
函式被呼叫進行測試的例子如下:
#include
typedef
struct
student;
void
sort
(student a,
int size)
;void
swap
(student * s1,student * s2)
;int
comp
(student * s1,student * s2)
;int
main()
sort
(stu,n)
;for
(i=0
;i)printf
("%s %d %d %d\n"
,stu[i]
.id,stu[i]
.total,stu[i]
.ce,stu[i]
.ws)
;return0;
}
/* 請在這裡填寫答案 */
輸入樣例:
3
bupt_2018210001 78
74bupt_2018210002 95
71bupt_2018210003 84
75
輸出樣例:
bupt_2018210002 166
9571
bupt_2018210003 159
8475
bupt_2018210001 152
7874
void
swap
(student * s1,student * s2)
6 1 綜合成績排名 結構體一 100 分
6 1 綜合成績排名 結構體一 100 分 眾所周知,計算機院要對申請轉入計算機大類的學生進行考核,考核方式包括機試和面試。學生綜合成績採取百分制,其中50 由機試成績核算,另50 由學生已獲得的加權成績核算。綜合成績優秀者可進入面試環節。現請你寫乙個根據學生成績來確定綜合成績排名的程式。輸入 第一...
6 2 綜合成績排名 結構體二 100分
眾所周知,計算機院要對申請轉入計算機大類的學生進行考核,考核方式包括機試和面試。學生綜合成績採取百分制,其中50 由機試成績核算,另50 由學生已獲得的加權成績核算。綜合成績優秀者可進入面試環節。現請你寫乙個根據學生成績來確定綜合成績排名的程式。輸入 第一行為乙個整數n 0輸出 共n行,按綜合成績 ...
1004 成績排名(結構體)
讀入 n 0 名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含 1 個測試用例,格式為 第 1 行 正整數 n 第 2 行 第 1 個學生的姓名 學號 成績 第 3 行 第 2 個學生的姓名 學號 成績 第 n 1 行 第 n 個學生的姓名 學號 成績...