6 2 綜合成績排名 結構體二 100分

2021-10-12 10:04:06 字數 1975 閱讀 4868

眾所周知,計算機院要對申請轉入計算機大類的學生進行考核,考核方式包括機試和面試。學生綜合成績採取百分制,其中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按題目指定規則排序。。

int

comp

(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

int

comp

(student * s1,student * s2)

elseif(

(s1->total)

<

(s2->total)

)else

else

}}

6 1 綜合成績排名 結構體一 100分

眾所周知,計算機院要對申請轉入計算機大類的學生進行考核,考核方式包括機試和面試。學生綜合成績採取百分制,其中50 由機試成績核算,另50 由學生已獲得的加權成績核算。綜合成績優秀者可進入面試環節。現請你寫乙個根據學生成績來確定綜合成績排名的程式。輸入 第一行為乙個整數n 0輸出 共n行,按綜合成績 ...

6 1 綜合成績排名 結構體一 100 分

6 1 綜合成績排名 結構體一 100 分 眾所周知,計算機院要對申請轉入計算機大類的學生進行考核,考核方式包括機試和面試。學生綜合成績採取百分制,其中50 由機試成績核算,另50 由學生已獲得的加權成績核算。綜合成績優秀者可進入面試環節。現請你寫乙個根據學生成績來確定綜合成績排名的程式。輸入 第一...

1004 成績排名(結構體)

讀入 n 0 名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含 1 個測試用例,格式為 第 1 行 正整數 n 第 2 行 第 1 個學生的姓名 學號 成績 第 3 行 第 2 個學生的姓名 學號 成績 第 n 1 行 第 n 個學生的姓名 學號 成績...