Description
期末考试结束了,老师想要根据学生们的成绩划分出等级。共有5个等级A,B,C,D和E。
划分方法如下,90分(含90)以上的为A,8090(含80)间的为B,7080(含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等代表个等级的人数,等级和人数之间有一个空格。
Sample
Input
6
66
73
85
99
100
59
Output
A 2
B 1
C 1
D 1
E 1
方法一:这是最容易想到的用分数大于一个数小于一个数来限制范围
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,x;
int count1=0,count2=0;
int count3=0,count4=0,count5=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d",&x);
if(x>=90)
count1++;
if(x>=80&&x<90)
count2++;
if(x>=70&&x<80)
count3++;
if(x>=60&&x<70)
count4++;
if(x<60)
count5++;
}
printf("A %d\nB %d\nC %d\nD %d\nE %d",count1,count2,count3,count4,count5);
return 0;
}
方法二:用到多分支结构;
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,x,i;
int a=0,b=0,c=0,d=0,e=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d",&x);
x=x/10; //去掉一位,这边不用上面的范围来限制了;
switch(x) //用多分支结构不要忘了break;
{
case 10:
case 9:
a++;
break;
case 8:
b++;
break;
case 7:
c++;
break;
case 6:
d++;
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
e++;
break;
}
}
printf("A %d\nB %d\nC %d\nD %d\nE %d",a,b,c,d,e);
return 0;
}