本题要求编写程序读入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
方法一
#include<stdio.h>
int main()
{
int n, score;
int A, B, C, D, E;
A=B=C=D=E=0;
scanf("%d", &n);
for(int i=1; i<=n; i++){
scanf("%d", &score);
if(score>=90)
A++;
else if(score>=80)
B++;
else if(score>=70)
C++;
else if(score>=60)
D++;
else
E++;
}
printf("%d %d %d %d %d", A, B, C, D, E);
return 0;
}
方法二,利用数组来存放等级
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[5] = { 0 };//a[i]的值对应等级的人数个数
int cnt = 0;//统计人数的个数
int score = 0;//分数
int n = 0;//总的人数
int m = 0;//等级对应数组下标
scanf("%d", &n);
while (cnt < n)
{
scanf("%d", &score);
if (score >= 90)
{
m = 0;
}
else if (score >= 80)
{
m = 1;
}
else if (score >= 70)
{
m = 2;
}
else if (score>=60)
{
m = 3;
}
else
{
m = 4;
}
a[m]++;
cnt++;
}
//打印
int i;
for (i = 0; i < 4; i++)
{
printf("%d ", a[i]);
}
printf("%d", a[i]);
return 0;
}