# 實作題 - 成績指標 - APCS - by Peter Wang ## 題目資訊 此題為2016.3.5測驗中的題目1 ###### tags: `APCS` ## 題目敘述 一次考試中,於所有及格學生中獲取最低分數者最為幸運,反之,於所有不及格同學中,獲取最高分數者,可以說是最為不幸,而此二種分數,可以視為成績指標。 請你設計一支程式,讀入全班成績(人數不固定),請對所有分數進行排序,並分別找出不及格中最高分數,以及及格中最低分數。 當找不到最低及格分數,表示對於本次考試而言,這是一個不幸之班級,此時請你印出「worst case」;反之,當找不到最高不及格分數時,請你印出「best case」。 ( 註:假設及格分數為 60 )。 ### 輸入: 第一行輸入學生人數,第二行為各學生分數(*0~100* 間),分數與分數之間以一個空白間格。 每一筆測資的學生人數為 *1~20* 的整數。 ### 輸出: 每筆測資輸出三行。 第一行由小而大印出所有成績,兩數字之間以一個空白間格,最後一個數字後無空白; 第二行印出最高不及格分數,如果全數及格時,於此行印出 best case ; 第三行印出最低及格分數,如果全數不及格時,於此行印出 worst case 。 ## 解題思路 利用 *algorithm* 寫好的函示庫做排序,並判斷。 ## 程式碼 ```clike= #include <iostream> #include <algorithm> using namespace std; int main() { int n; while(cin>>n){ int arr[n]; for(int i=0;i<n;i++){ cin>>arr[i]; } sort(arr,arr+n); int best=101,worst=-1; for(int i=0;i<n;i++){ if(i!=n-1){ cout<<arr[i]<<' '; } else{ cout<<arr[i]<<endl; } if(arr[i]<60 && arr[i]>worst){ worst=arr[i]; } else if(arr[i]<best && arr[i]>=60){ best=arr[i]; } } if(worst!=-1){ cout<<worst<<endl; } else{ cout<<"best case"<<endl; } if(best!=101){ cout<<best<<endl; } else{ cout<<"worst case"<<endl; } } } ``` ## 資料來源 [zerojudge](https://zerojudge.tw/) [題目敘述](https://zerojudge.tw/ShowProblem?problemid=b964) ## 備註 >[name=PeterWang] >[time=Sun, Jun 13, 2021 9:59 AM]
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up