24h購物| | PChome| 登入
2011-05-14 20:59:53| 人氣3,555| 回應0 | 上一篇 | 下一篇

a053. Sagit's 計分程式

推薦 0 收藏 0 轉貼0 訂閱站台

內容 :

sagit 是一位高中電腦老師,這學期正在教學生寫C++程式。他的評分標準是依照每一位學生在 ZeroJudge 系統上解出的題數,去計算出對應的得分。為了不讓分數落差太大,因此他並不是採取每一題固定得分的方式,而是隨著題數增加而調整每題的得分。規則如下:

  1. 答對題數在 0~10 者,每題給6分。
  2. 題數在 11~20 者,從第11題開始,每題給2分。(前10題還是每題給6分)
  3. 題數在 21~40 者,從第21題開始,每題給1分。
  4. 題數在 40 以上者,一律100分。

如此一來,只要寫10題,就可以得到60分,寫20題,就可以得到80分,不過要得到滿分100分,則是要寫到40題,所以同學們分數的差距就大大地減少了。 

不過問題來了,雖然學生們因為這樣的計分公式而大大地提升了及格率,但因為 sagit 有600多位學生,一個一個去計算真的是一件很吃重的工作,所以現在想請你幫他寫個程式解決這個問題。

輸入說明 :

每組測資只有一個整數 N (0<=N<=100),代表學生在 ZeroJudge 系統上解出的題數。

輸出說明 :

印出該位同學的得分。

範例輸入 :help

10
40

範例輸出 :

60
100

提示 :

背景知識: 多重 if

出處 :

Sagit's 教學題 (管理:sagit)

這是教學題,給範例看看就好

/**********************************************************************************/
/*  Problem: a053 "Sagit's 計分程式" from Sagit's 教學題                   */
/*  Language: C                                                                   */
/*  Result: AC (4ms, 255KB) on ZeroJudge                                          */
/*  Author: morris1028 at 2011-05-14 20:58:18                                     */
/**********************************************************************************/


#include<stdio.h>
#include<stdlib.h>
main() {
    int N, score;
    while(scanf("%d",&N)==1) {
        score = 0;
        if(N >= 40) puts("100");
        else {
            if(N < 10) score = N*6;
            else if(N >= 10 && N < 20) score = N%10*2 + 60;
            else score = N%20 + 80;
                        printf("%d\n", score);
        }
    }
    return 0;
}

台長: Morris
人氣(3,555) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: ZeroJudge |
此分類下一篇:d872. 過橋問題
此分類上一篇:a129. 最小生成樹

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文