7-2 统计成绩2 (10 分)

统计学生成绩(数据规模大,高效输入和高效算法,主要是卡时) 本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则: •大于等于90分为A; •小于90且大于等于80为B; •小于80且大于等于70为C; •小于70且大于等于60为D; •小于60为E。

输入格式:
输入在第一行中给出一个正整数N(≤6000000),即学生人数;第二行中给出N个学生的百分制成绩(非负整数),其间以空格分隔。

输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。

输入样例:
在这里给出一组输入。例如:

7
77 54 92 73 60 65 69

输出样例:
在这里给出相应的输出。例如:

1 0 2 3 1

#include<stdio.h>
inline void scan_d(int *num)
{
	char in;
	in = getchar();
	if (in == EOF) return;
	while (in != '-' && (in<'0' || in>'9')) in = getchar();
	if (in == '-') { *num = 0; }
	else *num = in - '0';
	while (in = getchar(), in >= '0'&&in <= '9') {
		*num *= 10, *num += in - '0';
	}
	return;
}
int a[120];
int main()
{
	int A = 0, B = 0, C = 0, D = 0, E = 0;
	int N = 0, score, i = 0;
	scan_d(&N);
	for (i = 1; i <= N; i++)
	{
		scan_d(&score);
		a[score]++;
	}
	i = 0;
	for (; i < 60; i++)
		E += a[i];
	for (; i < 70; i++)
		D += a[i];
	for (; i < 80; i++)
		C += a[i];
	for (; i < 90; i++)
		B += a[i];
	for (; i <= 100; i++)
		A += a[i];

	printf("%d %d %d %d %d", A, B, C, D, E);
	return 0;
}

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值