2017年4月11日 星期二

[ITSA Basic] 題目39. 考試測驗(Java, C++)

[ITSA Basic] 題目39. 考試測驗
問題描述 : 某間學校舉辦英文檢定測驗,若是學生通過該測驗,則能通過畢業門檻。老師準備的英文測驗中分為三個項目當作考試,分別是聽力、閱讀、口說。每一個項目測驗滿分皆為 100 分,總分為 300 分。
以下4個判斷條件
一:0科不及格,即為通過測驗。
二:1科不及格
    三個總分>= 220 分,也可算通過測驗。
    三個總分<   220 分,可獲得補考機會。
三:2個不及格,第三科成績>= 80 分,也可獲得補考的機會。
四:其餘皆判定為無法通過測驗。

輸入說明 
第一行為一個整數 N ,代表共有 N 組測試資料。之後有 N 行,每一行有 3 個非負整數 (範圍皆為 0 到 100), 分別代表該名學生聽力、閱讀、口說的測驗分數。

輸出說明 :
   通過  ,則輸出 ”P” 
   補考  ,則輸出 ”M” 
無法通過,則輸出 ”F”  
每組答案結果輸出於一行

    Java

  1. import java.util.*;   
  2. import java.lang.*;   
  3. import java.io.*;   
  4. import java.util.InputMismatchException; 
  5.  
  6. public class Main 
  7.   public static void main(String[] args)  
  8.     { 
  9.       int n, listen, read, speak; 
  10.         int failNum = 0; 
  11.        Scanner sc = new Scanner(System.in); 
  12.        n = sc.nextInt();  
  13.      if(0 < n && n <100) 
  14.       { 
  15.           for(int i = 0;i < n;i++) 
  16.             { 
  17.               listen = sc.nextInt();  
  18.                 read = sc.nextInt();  
  19.               speak = sc.nextInt();  
  20.               
  21.                if(listen >= 0 && listen <= 100) 
  22.              { 
  23.                   if(listen < 60) 
  24.                  { 
  25.                       failNum++; 
  26.                  } 
  27.               } 
  28.               if(read >= 0 && read <= 100) 
  29.              { 
  30.                   if(read < 60) 
  31.                    { 
  32.                       failNum++; 
  33.                  } 
  34.               } 
  35.               if(speak >= 0 && speak <= 100) 
  36.                { 
  37.                   if(speak < 60) 
  38.                   { 
  39.                       failNum++; 
  40.                  } 
  41.               } 
  42.                
  43.                switch(failNum) {  
  44.              case 0:  
  45.                    System.out.println("P"); 
  46.                    break;  
  47.                 case 1:  
  48.                    if((listen+read+speak)>= 220) 
  49.                    { 
  50.                       System.out.println("P"); 
  51.                    } 
  52.                   else if((listen+read+speak)< 220) 
  53.                    { 
  54.                       System.out.println("M"); 
  55.                    } 
  56.                   break;  
  57.                 case 2:  
  58.                    if(listen >= 80) 
  59.                     { 
  60.                       System.out.println("M"); 
  61.                    } 
  62.                   else if(read >= 80) 
  63.                  { 
  64.                       System.out.println("M"); 
  65.                    } 
  66.                   else if(speak >= 80) 
  67.                     { 
  68.                       System.out.println("M"); 
  69.                    } 
  70.                   else 
  71.                    { 
  72.                       System.out.println("F"); 
  73.                    } 
  74.                   break;  
  75.                 case 3: 
  76.                     System.out.println("F"); 
  77.                default:  
  78.                    
  79.                     
  80.                }  
  81.              failNum = 0; 
  82.            } 
  83.       } 
  84.   } 
  85.  

    C++

  1. #include <iostream> 
  2. using namespace std; 
  3.  
  4. int main() { 
  5.    // 題目39. 考試測驗 
  6.   int N; 
  7.  cin >> N; 
  8.     int fail = 0; 
  9.   for(int i = 0;i < N;i++) 
  10.     { 
  11.       int grade[3]; 
  12.       cin >> grade[0] >> grade[1] >> grade[2]; 
  13.      //聽力, 閱讀, 口說 
  14.        for(int j = 0;j < 3;j++) 
  15.         { 
  16.           if(grade[j] < 60) 
  17.            { 
  18.               fail++; 
  19.             } 
  20.       } 
  21.       if(fail == 0) 
  22.       { 
  23.           cout << "P" << endl; 
  24.        } 
  25.       else if(fail == 1) 
  26.       { 
  27.           if(grade[0] + grade[1] + grade[2]>=220) 
  28.          { 
  29.               cout << "P" << endl; 
  30.            } 
  31.           else if(grade[0] + grade[1] + grade[2] < 220) 
  32.            { 
  33.               cout << "M" << endl; 
  34.            } 
  35.       } 
  36.       else if(fail == 2) 
  37.       { 
  38.           if(grade[0] >= 80 || grade[1] >= 80 || grade[2] >= 80) 
  39.             { 
  40.               cout << "M" << endl; 
  41.            } 
  42.           else 
  43.            { 
  44.               cout << "F" << endl; 
  45.            } 
  46.       } 
  47.       else 
  48.       { 
  49.           cout << "F" << endl; 
  50.       } 
  51.       fail = 0; 
  52.   } 
  53.   return 0; 
  54. }  


沒有留言:

張貼留言