高階69 獎學金

2021-10-05 09:49:33 字數 1705 閱讀 5489

69 獎學金

問題描述 :

明明所在學校的慣例是在每學期的期末考試之後發放獎學金。

發放的獎學金共有五種,獲取的條件各不相同:

五四獎學金:每人4000元,期末平均成績高於85分,並且班級評議成績高於80分的學生均可獲得。

成績優秀獎:每人2000元,期末平均成績高於90分的學生均可獲得。

西部獎學金:每人1000元,期末平均成績高於85分的西部省份學生均可獲得。

班級貢獻獎:每人850元,班級評議成績高於80分的學生幹部均可獲得。

只要符合條件就可以得獎。 每項獎學金的獲獎人數沒有限制,每名學生也可以同時獲得多項獎學金。

例如明明的期末平均成績是87分,班級評議成績82分,同時他還是一位學生幹部,那麼他可以同時獲得五四獎學金和班級貢獻獎,獎金總數是4850元。

1) 哪位同學獲得的獎學金最多;

2) 獲得最多獎學金的同學一共獲得了多少獎學金;

3) 所有獲得獎學金的同學一共獲得了多少獎學金;

明明雖然很願意幫老師這個忙,但是他發現,同學的數量很多,統計起來很麻煩,經常有統計出錯的情況發生。於是明明就想請你幫乙個忙,幫他寫乙個統計程式,統計出以上三項內容。

輸入說明 :

你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。標準輸入裝置中有多組測試資料,每組測試資料有多行,每組測試資料的第一行有乙個整數n(1≤n≤100),表示學生的總數。接下來的n行,每行是一位學生的資料,一行中從左向右依次是姓名,期末平均成績,班級評議成績,是否是學生幹部,是否是西部省份學生,以及發表的**數。姓名是由大小寫英文本母組成的長度不超過20的字串(不含空格),期末平均成績和班級評議成績都是0到100之間的整數(包括0和100),是否是學生幹部和是否是西部省份學生分別用乙個字元表示,y表示是,n表示不是,發表的**數是0到10的乙個整數(包括0和10),每兩個相鄰資料項之間用乙個空格分隔。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。

輸出說明 :

對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將每組運算結果作為你所寫程式的輸出資料依次寫入到標準輸出裝置中。

每組運算結果有三行,第一行是獲得最多獎金的學生的姓名,第二行是這名學生獲得的獎金總數。 如果有不止一名學生獲得的獎學金最多,輸出他們之**現最早的學生姓名,第三行是這n個學生獲得的獎學金的總數。輸出時,每組運算結果其行首和行尾都沒有任何空格或其他任何字元,每組運算結果與其後一組運算結果之間有乙個空行,最後一組運算結果後面沒有空行。 注:通常,顯示屏為標準輸出裝置。

輸入範例 :

1peter 87 82 y n 0

2peter 85 85 y y 1

mary 90 90 n n 0

輸出範例 :

peter

4850

4850

peter

8850

12850

#include

#include

struct stu

;int

main()

max=money[0]

;sum=money[0]

;flag=0;

for(i=

1;iprintf

("%s\n%d\n%d\n\n"

,s[flag]

.name,max,sum);}

return0;

}

排序 獎學金

某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學排在前面,這樣,每個學生的排序是唯一確定的。任...

獎學金 排序

描述 某小學最近得到了一筆贊助,打算拿出其中一部分為學習成績優秀的前5名學生發獎學金。期末,每個學生都有3門課的成績 語文 數學 英語。先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學排在前面,這樣,每個學生的排序是唯一確定...

獎學金pascal程式

題意 把總分排序 分析先按總分從高到低排序,如果兩個同學總分相同,再按語文成績從高到低排序,如果兩個同學總分和語文成績都相同,那麼規定學號小的同學 排在前面 vara,t,p array 0.300 of longint n,i,x,y,j longint procedure kp l,r long...