PAT 1080 MOOC期終成績

2021-08-26 15:22:01 字數 2596 閱讀 3537

g=(

g​mi

d−te

rm​​

×40%+

g​fi

nal×

60%) g=(

g​mi

d−te

rm​​

×40%+

g​fi

nal×

60%

),如果g​

mid−

term

>gf

inal

g ​m

id−t

er

m>gf

inal

;否則總評 g 就是 gf

inal

g fi

na

l。這裡 gm

id−t

erm gmi

d−te

rm

和 gf

inal

g fi

na

lg​p

g ​p

;第二塊包含 m 個期中考試成績 g​

mid−

term

g ​m

id−t

er

m;第三塊包含 n 個期末考試成績 gf

inal

g fi

na

l​​ 。每個成績佔一行,格式為:學生學號 分數。其中學生學號為不超過20個字元的英文本母和數字;分數是非負整數(程式設計總分最高為900分,期中和期末的最高分為100分)。

輸出格式:

列印出獲得合格證書的學生名單。每個學生佔一行,格式為:

學生學號 gp

g

pg​m

id−t

erm g​m

id−t

er

mgfi

nal gfi

nalg

g

如果有的成績不存在(例如某人沒參加期中考試),則在相應的位置輸出「−1」。輸出順序為按照總評分數(四捨五入精確到整數)遞減。若有並列,則按學號遞增。題目保證學號沒有重複,且至少存在1個合格的學生。

輸入樣例:

6 6 7

01234 880

a1903 199

ydjh2 200

wehu8 300

dx86w 220

missing 400

ydhfu77 99

wehu8 55

ydjh2 98

dx86w 88

a1903 86

01234 39

ydhfu77 88

a1903 66

01234 58

wehu8 84

ydjh2 82

missing 99

dx86w 81

輸出樣例:

missing 400 -1 99 99

ydjh2 200 98 82 88

dx86w 220 88 81 84

wehu8 300 55 84 84

我覺得我的思路挺好的。

首先用map< string,score> 儲存輸入的程式設計成績。這裡我設定了程式設計成績小於200直接丟棄。

然後處理期中考試成績:如果在之前的map裡找到了,就證明這個人有程式設計成績,就讀入map.

同理處理期末考試。

在結算期中考試和期末考試,算出總評成績。如果總評成績小於60,就讓flag為false。

處理完畢後,把所有flag=true的成績放在vector裡,再排序輸出。

你可能最後乙個測試點沒有過,可能這裡你的原因:

在題目裡是這樣說的:如果有的成績不存在(例如某人沒參加期中考試),則在相應的位置輸出「−1」

有乙個同學期中考試考了0分,但是你輸出成了-1。這可能是因為你的程式把所有沒有期中(期末)考試記為了0.所以發生了最後乙個測試點沒過。

pat真是陰啊,這種測試點都能有,好久沒有被pat坑了。

#include

using

namespace

std;

struct score;

struct student;

bool cmp(student a,student b)

int main()

}for(int i=0;icin>>id>>sco;

auto it=pp.find(id);

if(it !=pp.end())

} for(int i=0;icin>>id>>sco;

auto it=pp.find(id);

if(it!=pp.end())

}for(auto &x:pp)

vector

data;

student temp2;

for(auto x:pp)

}sort(data.begin(),data.end(),cmp);

for(auto x:data)

}

PAT 1080 MOOC期終成績

現在的問題是,每次考試都產生一張獨立的成績單。本題就請你編寫程式,把不同的成績單合為一張。列印出獲得合格證書的學生名單。每個學生佔一行,格式為 學生學號g p g mid term g final g 如果有的成績不存在 例如某人沒參加期中考試 則在相應的位置輸出 輸出順序為按照總評分數 四捨五入精...

pat 1080 MOOC期終成績 25分

注意事項 考0分和缺考是兩回事,考0分輸出0,但缺考輸出 1,但map函式預設對映值為0,所以當學生期中考試成績為0時,這裡選擇乙個大於100的非法成績作為標記,以便後面進行識別學生到底是考了0分還是缺考 成績g的四捨五入 輸入樣例 6 6 7 01234 880 a1903 199 ydjh2 2...

PAT乙級 1080 MOOC期終成績

列印出獲得合格證書的學生名單。每個學生佔一行,格式為 學生學號 gp g mid term gfinal g 如果有的成績不存在 例如某人沒參加期中考試 則在相應的位置輸出 1 輸出順序為按照總評分數 四捨五入精確到整數 遞減。若有並列,則按學號遞增。題目保證學號沒有重複,且至少存在1個合格的學生。...