# 實作題 - 成績指標 - 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.