description
某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績:語文、數學、英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面,這樣,每個學生的排序是唯一確定的。
任務:先根據輸入的3門課的成績計算總分,然後按上述規則排序,最後按排名順序輸出前五名名學生的學號和總分。注意,在前5名同學中,每個人的獎學金都不相同,因此,你必須嚴格按上述規則排序。例如,在某個正確答案中,如果前兩行的輸出資料(每行輸出兩個數:學號、總分) 是:
7 279
5 279
這兩行資料的含義是:總分最高的兩個同學的學號依次是7號、5號。這兩名同學的總分都是 279 (總分等於輸入的語文、數學、英語三科成績之和) ,但學號為7的學生語文成績更高一些。如果你的前兩名的輸出資料是:
5 279
7 279
則按輸出錯誤處理,不能得分。
input
輸入包含
n+1行:
第1行為乙個正整數
n,表示該校參加評選的學生人數。
第2到n+1行,每行有
3個用空格隔開的數字,每個數字都在o到
100之間z第
1行的3個數
字依次表示學號為
j-1的學生的語文、數學、英語的成績。每個學生的學號按照輸入順序編號為
l~n (
恰好是輸入資料的行號減1)。
output
輸出共有5行,每行是兩個用空格隔開的正整數,依次表示前5名學生的學號和總分。
sample input
6sample output90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
6 2654 264
3 258
2 244
1 237
看到這題目直覺是要用結構體,因為涉及好幾個量一塊行動,排名一變,學號什麼的也得跟這變,剛開始自己想的是先用sort把總分排序,然後按順序輸出前五個就行,但是題目還有總分一樣的時候按語文和學號排序這個條件,所以要一類一類逐級考慮,也就是最老土最笨的辦法,就是乙個乙個排下去,然後用
term=e[j];
e[j]=e[j+1];
e[j+1]=term;
三句這樣的話將變數逐個交換,當然,假設有多個變數,那麼這個交換工程也是相當龐大的,所以。。。。
這裡插入那個類似的題目和當年年少無知的我的**、、、
sample outputdescription
期末考試結束了,老師需要統計成績,本學期有語文、數學和英語三門課,老師知道每個同學的三門課程的分數,因為老師實在太忙了,所以老師找到了你,並給出了排序方法:
1.當總分不同時,按總分公升序排序
2.當總分相同時,按照語文成績公升序排序
3.同理,當語文成績相同時按照數學成績公升序排列
4.最後將排序好的資料送給老師即可
聰明的你能否幫老師解決這個問題呢?
input
第一行輸入乙個t(t<=20),代表有t組資料,每組資料第一行輸入n(n<=50),代表此班級有n位同學,接下來n行,分別輸入每位同學的學號和語數英三門成績(每門成績均大於等於0,小於等於100)。
output
按照題目要求,公升序輸出每位同學的學號和總分
sample input
13101 90 70 90
102 80 60 60
103 90 95 90
102 200101 250
103 275
#include
int
a[55],b[55],c[55],d[55],e[55];
int
main ()
for
(i=1;i<=n;i++)
for
(i=1;i
}
}
for
(i=1;i
if
(b[j]==b[j+1])
}
}
}
}
for
(i=1;i<=n;i++)
}
return
0;
}
有木有足夠長呢,**,瞬間感覺高大上的腦力活被我搞成了苦逼不堪的體力活、、、
今天某位大神教了我乙個好辦法,雖然以前他也講過。。。但是意外啦,不記得有講過
假設先按總分n(300>n>0)排序,後按語文c(100>c>0)排序,再按學號(d從小到大排)排序。
那麼可以乙個很大的整數來表示此三項和,即n*1000000+c*1000-d;
這樣的話很容易就看到了各項的數值大的最終值肯定也大,而學號的話小的肯定數值較大;
只需乙個sort排序,簡簡單單gameover!!!
#include
#include
using
namespace
std;
struct
jxj
xs[333];
int
cmp(jxj x,jxj y)
int
main()
sort(xs,xs+t,cmp);
for
(i=0;i<5;i++)
return
0;
}
果然**短了一半,瞬間土渣變成高大上,其實真的只是水題。
快來簽到呀(水題)
快來簽到呀 description 受疫情影響,霍格沃茨的學生們也在家上網課。konomikonomiko nomi 是格蘭芬多學院應用魔法與術士構造專業的學生今天他要上nn n門課程,第i門課有乙個簽到截止時間aia iai konomikonomiko nomi 必須在截止前釋放魔法進行簽到,但...
網路賽水題
題目 一開始看確實很簡單的,但是暈死的題意距離坑了很多人。view code 1 typedef long long ll 2 const int n 1010 3 inta n 4int main 516 intflag 17for i 0 i n i 1831 sum 32 33if flag ...
水題歡樂賽 套路
套路是人類進步的階梯,我將不惜一切代價套路學習 費清澄 恩恩真是太對了 zqc是乙隻套路的犰 zqc有乙個套路題庫,當然,他為了讓這個套路題庫不被發現,給題庫加了密。這個題庫有很多密碼,你只有輸入套路密碼後,你才能看到題目,並且題目的質量和套路密碼的長度成正比.根據你獲取到的情報,套路密碼為兩個字串...