內容 :
sagit 是一位高中電腦老師,這學期正在教學生寫C++程式。他的評分標準是依照每一位學生在 ZeroJudge 系統上解出的題數,去計算出對應的得分。為了不讓分數落差太大,因此他並不是採取每一題固定得分的方式,而是隨著題數增加而調整每題的得分。規則如下:
不過問題來了,雖然學生們因為這樣的計分公式而大大地提升了及格率,但因為 sagit 有600多位學生,一個一個去計算真的是一件很吃重的工作,所以現在想請你幫他寫個程式解決這個問題。
- 答對題數在 0~10 者,每題給6分。
- 題數在 11~20 者,從第11題開始,每題給2分。(前10題還是每題給6分)
- 題數在 21~40 者,從第21題開始,每題給1分。
- 題數在 40 以上者,一律100分。
不過問題來了,雖然學生們因為這樣的計分公式而大大地提升了及格率,但因為 sagit 有600多位學生,一個一個去計算真的是一件很吃重的工作,所以現在想請你幫他寫個程式解決這個問題。
輸入說明 :
每組測資只有一個整數 N (0<=N<=100),代表學生在 ZeroJudge 系統上解出的題數。
輸出說明 :
印出該位同學的得分。
範例輸入 :
1040
範例輸出 :
60100
提示 :
背景知識: 多重 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;
}
這是教學題,給範例看看就好
/**********************************************************************************/
/* 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;
}
沒有留言:
張貼留言