Problem Description
期末考试结束了,老师想要根据学生们的成绩划分出等级。共有5个等级A,B,C,D和E。
划分方法如下,90分(含90)以上的为A,80~90(含80)间的为B,70~80(含70)间的为C,
60~70(含60)的为D,不及格的为E。
根据输入的成绩,编程输出各个级别段人数。
Input
输入第一行包含一个正整数N(N<= 100)代表学生的数目,接下来有N行数据每行一个整数(0~100)代表
一个学生的成绩。
一个学生的成绩。
Output
输出有五行格式如下:
A nA
B nB
C nC
D nD
E nE
其中A,B,C,D,E代表等级,nA,nB等代表个等级的人数,等级和人数之间有一个空格。
A nA
B nB
C nC
D nD
E nE
其中A,B,C,D,E代表等级,nA,nB等代表个等级的人数,等级和人数之间有一个空格。
Example Input
6 66 73 85 99 100 59
Example Output
A 2 B 1 C 1 D 1 E 1
01
#include <stdio.h>
02
#include <stdlib.h>
03
04
int
main()
05
{
06
int
i, n, m, nA = 0, nB = 0, nC = 0, nD = 0, nE = 0;
07
scanf
(
"%d"
, &n);
08
for
(i = 1; i <= n; i++)
09
{
10
scanf
(
"%d"
, &m);
11
switch
((
int
)(m / 10))
12
{
13
case
10 :
14
case
9 :
15
nA++;
16
break
;
17
case
8 :
18
nB++;
19
break
;
20
case
7 :
21
nC++;
22
break
;
23
case
6 :
24
nD++;
25
break
;
26
default
:
27
nE++;
28
break
;
29
}
30
}
31
printf
(
"A %d\n"
, nA);
32
printf
(
"B %d\n"
, nB);
33
printf
(
"C %d\n"
, nC);
34
printf
(
"D %d\n"
, nD);
35
printf
(
"E %d\n"
, nE);
36
return
0;
37
}
本题有对switch语言的考察,很好。该语句分多个case然后执行相应的语句,最后所有情况都不符合的有个default然后执行语句。注意,case顺序可以换,然后default若没有执行的语句,也要写上,default:break;其实本题就是数数,数一下各个档次的个数。