阿摩線上測驗 登入

申論題資訊

試卷:107年 - 107 身心特考_四等_資訊處理:程式設計概要#68998
科目:程式設計
年份:107年
排序:0

題組內容

三、假設已經將某位考生的單一科目分數輸入到變數 int nScore 中,並確定其值介於 0~100 之間。請依下列各子題要求分別撰寫出程式片段,將該分數轉換為等級 char Grade,使得 Grade 與 nScore 之對應為:’A’:90~100、’B’:80~89、’C’:70~79、’D’: 60~69、’E’:0~59。作答時可以使用 C/C++、Java 或 C#其中任何一種語言作答,但 必須註明所採用語言。

申論題內容

⑵使用 switch,且 case 標籤(label)須盡量精簡。(15 分)

詳解 (共 4 筆)

詳解 提供者:白龍@菜鳥公務員(107/10/29)

以C++為例:
此題採用switch,其中case部分為一範圍,故可使用特別寫法,
數字 ... 數字表示,並注意除了最後判斷外,每個case須加上break作為停止判斷。
#include<stdlib.h>

int main(){

 int nScore;

 char Grade;

  switch(nScore){

   case 90 ... 100:

    Grade='A';

     break;  

   case 80 ... 89:

    Grade='B';

     break;  

   case 70 ... 79:

    Grade='C';

     break;   

   case 60 ... 69:

    Grade='D';

     break;    

   default:

    Grade='E';

  }

 return 0;

}


詳解 提供者:牛奶鍋

switch(score / 10) {
case 10: case 9:
    Grade= "A"  ;
    break;
case 8:
    Grade="B";
    break;
case 7: 

    Grade="C";
    break;
case 6:
    Grade="D" ;
    break;
default:
    Grade="E" ;
詳解 提供者:芷

switch(nScore/10){

    case 9:

        Grade='A';

        break;  

    case 8:

        Grade='B';

         break;  

   case 7:

        Grade='C';

         break;   

   case 6:

        Grade='D';

         break;    

   default:

        Grade='E';

  }

詳解 提供者:hchungw

使用 switch 語句進行分級時,由於 switch 不直接支持範圍比較,我們可以通過一個小技巧來實現:先將分數轉換成一個較小範圍的值,然後在 switch 語句中使用這個值進行匹配。這裡是一個使用 C/C++ 語言的範例:
#include <iostream>
using namespace std;
int main() {
    int nScore = 85; // 假設考生分數是 85
    char Grade;
    switch (nScore / 10) {
        case 10:
        case 9:
            Grade = 'A';
            break;
        case 8:
            Grade = 'B';
            break;
        case 7:
            Grade = 'C';
            break;
        case 6:
            Grade = 'D';
            break;
        default:
            Grade = 'E';
    }
    cout << "Score: " << nScore << " is equivalent to Grade: " << Grade << endl;
    return 0;
}
在這段代碼中,我們先將 nScore 除以 10,這樣所有 90 到 100 的分數都會被轉換成 9(或10,對於滿分100),80 到 89 的分數都會被轉換成 8,以此類推。這樣我們就可以使用這個結果作為 switch 語句的條件,並根據結果設置相應的等級。這種方法簡化了 case 標籤,使代碼更加精簡。