本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
- 大于等于90分为A;
- 小于90且大于等于80为B;
- 小于80且大于等于70为C;
- 小于70且大于等于60为D;
- 小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
解题思路:按照题目要求建立变量与数组进行存放,这边用了循环以及getchar(),getchar()用于存放多余的空格,用选择结构进行分类处理;
程序实现如下:
#include<stdio.h>
int main(void)
{
int N,score[1000],i,j;
int A,B,C,D,E;
A=B=C=D=E=0;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d",&score[i]);
getchar();
}
for(j=0;j<N;j++){
switch(score[j]/10)
{
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("%d %d %d %d %d",A,B,C,D,E);
return 0;
}