實驗二B分數排序

2021-10-03 12:56:02 字數 1456 閱讀 1791

程式設計思維作業和實驗使用的實**測系統,具有及時獲得成績排名的特點,那它的功能是怎麼實現的呢?

我們千辛萬苦懟完了不忍直視的程式並提交以後,評測系統要麼返回ac,要麼是返回各種其他的錯誤,不論是怎樣的錯法,它總會給你記上一筆,表明你曾經在這兒被坑過,而當你歷經千辛終將它ac之後,它便會和你算筆總賬,表明這題共錯誤提交了幾次。你通過的題數雖然越來越多,但通過每題時你所共花去的時間(從最開始算起,直至通過題目時的這段時間)都會被記錄下來,作為你曾經奮鬥的痕跡。特別的,對於你通過的題目,你曾經的關於這題的每次錯誤提交都會被算上一定的單位時間罰時,這樣一來,你在做出的題數上,可能領先別人很多,但是在做出同樣題數的人中,你可能會因為罰時過高而處於排名上的劣勢。

例如某次考試一共八道題(a,b,c,d,e,f,g,h),每個人做的題都在對應的題號下有個數量標記,負數表示該學生在該題上有過的錯誤提交次數但到現在還沒有ac,正數表示ac所耗的時間,如果正數a跟上了一對括號,裡面有個正數b,則表示該學生ac了這道題,耗去了時間a,同時曾經錯誤提交了b次。例子可見下方的樣例輸入與輸出部分。

輸入資料報含多行,第一行是共有的題數n(1≤n≤12)以及單位罰時m(10≤m≤20),之後的每行資料描述乙個學生的資訊,首先是學生的使用者名稱(不多於10個字元的字串)其次是所有n道題的得分現狀,其描述採用問題描述中的數量標記的格式,見上面的**。

根據這些學生的得分現狀,輸出乙個實時排名。實時排名顯然先按ac題數的多少排,多的在前,再按時間分的多少排,少的在前,如果湊巧前兩者都相等,則按名字的字典序排,小的在前。每個學生佔一行,輸出名字(10個字元寬),做出的題數(2個字元寬,右對齊)和時間分(4個字元寬,右對齊)。名字、題數和時間分相互之間有乙個空格。資料保證可按要求的輸出格式進行輸出。

定義乙個人的結構體儲存name,過題數acnum,總時間time,按照輸入格式,acnum等於第乙個字元不是『-』和』0』的輸入數,time等於過題時間的值+錯誤數*單位罰時,最後按照cmp函式sort排序,在進行輸出。

經過這次題,發現自己對字串的理解很有很多不足

#include

#include

#include

#include

#include

using

namespace std;

struct people

;bool

cmp(people&a,people&b)

string score;

//輸入的值

people p[

10000];

intmain()

break;}

} p[num]

.time+

=time2+time1*m;

//彙總總時間

} num++;}

sort

(p,p+num,cmp)

;for

(int i=

0;i)return0;

}

B 實驗11 10 鍊錶排序

題目描述 問題描述 已知乙個正整數組成的無序序列,個數未知,但至少有乙個元素,你的任務是建立乙個單鏈表,並使用該鍊錶儲存這個正整數序列,然後將這個鍊錶進行排序,使得排序後的鍊錶為遞增序列。正整數的輸入用 1作為結束標誌,注意 1不算這個正整數序列中的元素 不要統計 1 在排序的過程中,你可以自己選擇...

B 資料結構實驗之排序八 快速排序

description 給定n n 10 5 個整數,要求用快速排序對資料進行公升序排列,注意不得使用stl。input 連續輸入多組資料,每組輸入資料第一行給出正整數n 10 5 隨後給出n個整數,數字間以空格分隔。output 輸出排序後的結果,數字間以乙個空格間隔,行末不得有多餘空格。samp...

sort分數排序

綜合題,給你乙個10個人的成績表,現在你要按照以下規則排序 總分越高的在前面,總分相同,比較語文成績,高者在前,語文相同,比較數學,依次類推。輸入10行 分別為姓名,語文,數學,英語成績 小明 85 85 85 小紅 90 85 80 小強 75 85 80 小麗 60 100 100 小愛 92 ...