1080 MOOC期終成績 (25 分)

對于在中國大學MOOC(http://www.icourse163.org/?)學習“數據結構”課程的學生,想要獲得一張合格證書,必須首先獲得不少于200分的在線編程作業分,然后總評獲得不少于60分(滿分100)。總評成績的計算公式為?0,如果?G?mid?term??>G?final??;否則總評?G?就是?G?final??。這里?G?mid?term???和?G?final???分別為學生的期中和期末成績。

現在的問題是,每次考試都產生一張獨立的成績單。本題就請你編寫程序,把不同的成績單合為一張。

輸入格式:

輸入在第一行給出3個整數,分別是 P(做了在線編程作業的學生數)、M(參加了期中考試的學生數)、N(參加了期末考試的學生數)。每個數都不超過10000。

接下來有三塊輸入。第一塊包含 P 個在線編程成績?G?p??;第二塊包含 M 個期中考試成績?G?mid?term??;第三塊包含 N 個期末考試成績?G?final??。每個成績占一行,格式為:學生學號 分數。其中學生學號為不超過20個字符的英文字母和數字;分數是非負整數(編程總分最高為900分,期中和期末的最高分為100分)。

輸出格式:

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

學生學號?G?p???G?mid?term???G?final???G

如果有的成績不存在(例如某人沒參加期中考試),則在相應的位置輸出“?”。輸出順序為按照總評分數(四舍五入精確到整數)遞減。若有并列,則按學號遞增。題目保證學號沒有重復,且至少存在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
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;struct Node{string name;int gp,gm,gf,g;
}node;bool cmp(Node a,Node b){return a.g != b.g ? a.g > b.g : a.name < b.name;
}int main(){map<string,int>idx; //to judge whether the student exists or notvector<Node> ans,stu;int p,n,m;cin >> p >> m >> n;string s;int score,cnt = 1;for(int i = 0; i < p; i++){cin >> s >> score;if(score >= 200){node.name = s;node.gp = score;node.gm = -1;node.gf = -1;node.g = 0;stu.push_back(node);idx[s] = cnt++;}} for(int i = 0; i < m; i++){cin >> s >> score;if(idx[s] != 0){stu[idx[s] - 1].gm = score;}}for(int i = 0; i < n; i++){cin >> s >> score;if(idx[s] != 0){int temp = idx[s] - 1;stu[temp].gf = score;stu[temp].g = score;if(stu[temp].gm > stu[temp].gf)stu[temp].g = int(stu[temp].gm * 0.4 + score * 0.6 + 0.5);}}for(int i = 0; i < stu.size(); i++){if(stu[i].g >= 60) ans.push_back(stu[i]);}sort(ans.begin(),ans.end(),cmp);for(int i = 0; i < ans.size(); i++){printf("%s %d %d %d %d\n",ans[i].name.c_str(),ans[i].gp,ans[i].gm,ans[i].gf,ans[i].g);}return 0;
}

?

轉載于:https://www.cnblogs.com/wanghao-boke/p/10424589.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385156.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385156.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385156.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1078 字符串壓縮與解壓 (20 分)

文本壓縮有很多種方法&#xff0c;這里我們只考慮最簡單的一種&#xff1a;把由相同字符組成的一個連續的片段用這個字符和片段中含有這個字符的個數來表示。例如 ccccc 就用 5c 來表示。如果字符沒有重復&#xff0c;就原樣輸出。例如 aba 壓縮后仍然是 aba。 解壓方法就是反過…

120. 三角形最小路徑和

給定一個三角形&#xff0c;找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。 例如&#xff0c;給定三角形&#xff1a; [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自頂向下的最小路徑和為 11&#xff08;即&#xff0c;2 3 5 1 11&#xff09;…

1079 延遲的回文數 (20 分)

給定一個 k1 位的正整數 N&#xff0c;寫成 a?k???a?1??a?0?? 的形式&#xff0c;其中對所有 i 有 0≤a?i??<10 且 a?k??>0。N 被稱為一個回文數&#xff0c;當且僅當對所有 i 有 a?i??a?k?i??。零也被定義為一個回文數。 非回文數也可以通過一系…

1081 檢查密碼 (15 分)

本題要求你幫助某網站的用戶注冊模塊寫一個密碼合法性檢查的小功能。該網站要求用戶設置的密碼必須由不少于6個字符組成&#xff0c;并且只能有英文字母、數字和小數點 .&#xff0c;還必須既有字母也有數字。 輸入格式&#xff1a; 輸入第一行給出一個正整數 N&#xff08;≤ …

1082 射擊比賽 (20 分)

本題目給出的射擊比賽的規則非常簡單&#xff0c;誰打的彈洞距離靶心最近&#xff0c;誰就是冠軍&#xff1b;誰差得最遠&#xff0c;誰就是菜鳥。本題給出一系列彈洞的平面坐標(x,y)&#xff0c;請你編寫程序找出冠軍和菜鳥。我們假設靶心在原點(0,0)。 輸入格式&#xff1a; …

LRU緩存機制

運用你所掌握的數據結構&#xff0c;設計和實現一個 LRU (最近最少使用) 緩存機制。它應該支持以下操作&#xff1a; 獲取數據 get 和 寫入數據 put 。 獲取數據 get(key) - 如果密鑰 (key) 存在于緩存中&#xff0c;則獲取密鑰的值&#xff08;總是正數&#xff09;&#xff…

1083 是否存在相等的差 (20 分)

給定 N 張卡片&#xff0c;正面分別寫上 1、2、……、N&#xff0c;然后全部翻面&#xff0c;洗牌&#xff0c;在背面分別寫上 1、2、……、N。將每張牌的正反兩面數字相減&#xff08;大減小&#xff09;&#xff0c;得到 N 個非負差值&#xff0c;其中是否存在相等的差&#…

c++如何防止一個類被其他類繼承?

如何在防止一個類被其他的類繼承呢&#xff1f; 如果是僅僅為了達到這個目的可以直接把這個類的構造函數設置成私有的&#xff0c;這樣就杜絕了其他類的繼承。也相當于毀掉了這個類&#xff08;無法再創造出自己的對象&#xff09;。 那么怎么樣既要保證這個類的完整性&#…

1084 外觀數列 (20 分)

外觀數列是指具有以下特點的整數序列&#xff1a; d, d1, d111, d113, d11231, d112213111, ...它從不等于 1 的數字 d 開始&#xff0c;序列的第 n1 項是對第 n 項的描述。比如第 2 項表示第 1 項有 1 個 d&#xff0c;所以就是 d1&#xff1b;第 2 項是 1 個 d&#xff08;對…

C++中構造函數和析構函數可以拋出異常嗎?

不建議在構造函數中拋出異常。當構造函數中拋出異常時&#xff0c;析構函數將不會被執行&#xff0c;需要手動釋放內存。析構函數不應該拋出異常。當析構函數中有一些可能發生的異常時&#xff0c;這時候要把可能發生的異常完全封裝在析構函數內部&#xff0c;決不能讓它拋出到…

1085 PAT單位排行 (25 分

每次 PAT 考試結束后&#xff0c;考試中心都會發布一個考生單位排行榜。本題就請你實現這個功能。 輸入格式&#xff1a; 輸入第一行給出一個正整數 N&#xff08;≤&#xff09;&#xff0c;即考生人數。隨后 N 行&#xff0c;每行按下列格式給出一個考生的信息&#xff1a; 準…

23. 合并K個排序鏈表

合并 k 個排序鏈表&#xff0c;返回合并后的排序鏈表。請分析和描述算法的復雜度。 示例: 輸入: [ 1->4->5, 1->3->4, 2->6 ] 輸出: 1->1->2->3->4->4->5->6 解法&#xff1a; class Solution { public:ListNode* mergeKLists(vect…

1086 就不告訴你 (15 分)

做作業的時候&#xff0c;鄰座的小盆友問你&#xff1a;“五乘以七等于多少&#xff1f;”你應該不失禮貌地圍笑著告訴他&#xff1a;“五十三。”本題就要求你&#xff0c;對任何一對給定的正整數&#xff0c;倒著輸出它們的乘積。 輸入格式&#xff1a; 輸入在第一行給出兩個…

學習鏈接

序號鏈接1Forz Blog [點擊鏈接]2arkingc/note [點擊鏈接] linw7/Skill-Tree [點擊鏈接] chenshuaihao/NetServer [點擊鏈接]

1087 有多少不同的值 (20 分)

當自然數 n 依次取 1、2、3、……、N 時&#xff0c;算式 ? 有多少個不同的值&#xff1f;&#xff08;注&#xff1a;? 為取整函數&#xff0c;表示不超過 x 的最大自然數&#xff0c;即 x 的整數部分。&#xff09; 輸入格式&#xff1a; 輸入給出一個正整數 N&#xff08;…

1088 三人行 (20 分)

子曰&#xff1a;“三人行&#xff0c;必有我師焉。擇其善者而從之&#xff0c;其不善者而改之。” 本題給定甲、乙、丙三個人的能力值關系為&#xff1a;甲的能力值確定是 2 位正整數&#xff1b;把甲的能力值的 2 個數字調換位置就是乙的能力值&#xff1b;甲乙兩人能力差是丙…

1089 狼人殺-簡單版 (20 分)

以下文字摘自《靈機一動好玩的數學》&#xff1a;“狼人殺”游戲分為狼人、好人兩大陣營。在一局“狼人殺”游戲中&#xff0c;1 號玩家說&#xff1a;“2 號是狼人”&#xff0c;2 號玩家說&#xff1a;“3 號是好人”&#xff0c;3 號玩家說&#xff1a;“4 號是狼人”&#…

1090 危險品裝箱 (25 分)

集裝箱運輸貨物時&#xff0c;我們必須特別小心&#xff0c;不能把不相容的貨物裝在一只箱子里。比如氧化劑絕對不能跟易燃液體同箱&#xff0c;否則很容易造成爆炸。 本題給定一張不相容物品的清單&#xff0c;需要你檢查每一張集裝箱貨品清單&#xff0c;判斷它們是否能裝在同…

C++標準庫之String

C中支持的字符串處理的函數庫叫String&#xff0c;但它不是STL&#xff0c;卻與STL操作十分相似。 1.聲明&#xff1a; 使用String之前要有以下頭文件 #include<string> using namespace std; 聲明方法 string s; //聲明一個string對象 s string s[10]; //聲明一個stri…