2021-03-07

7-1 成绩统计分析表(*) (10 分)

输入一个班的成绩,输出成绩统计分析表。

输入格式

班级人数n (n>0)
n 名学生的成绩 s​1​​,s​2​​,⋯,s​n​​ (0≤s​i​​≤100,1≤i≤n)

输出格式

输出 n 名学生的序号、成绩、柱状图 输出全班的最高分、最低分、平均分及柱状图 按成绩等级输出各等级的比例及柱状图

成绩等级:

成绩等级
[90,100]A
[80,90)B
[70,80)C
[60,70)D
[0,60)E

输入样例

15
98.5 67.3 42.5 90 75.2 63 77 99.5 8 100 80.5 69.5 88.5 66.5 87.5

输出样例

001:  98.5 ***************************************************************************************************
002:  67.3 *******************************************************************
003:  42.5 *******************************************
004:  90.0 ******************************************************************************************
005:  75.2 ***************************************************************************
006:  63.0 ***************************************************************
007:  77.0 *****************************************************************************
008:  99.5 ****************************************************************************************************
009:   8.0 ********
010: 100.0 ****************************************************************************************************
011:  80.5 *********************************************************************************
012:  69.5 **********************************************************************
013:  88.5 *****************************************************************************************
014:  66.5 *******************************************************************
015:  87.5 ****************************************************************************************

Max: 100.0 ****************************************************************************************************
Min:   8.0 ********
Avg:  74.2 **************************************************************************

A:  26.7% ***************************
B:  20.0% ********************
C:  13.3% *************
D:  26.7% ***************************
E:  13.3% *************

注:

(1) 所有实数只输出1位小数。
(2) 柱状图中星号数量按实数 4 舍 5 入后取整。

#include<stdio.h>
double a[101]; //定义一个全局的数组来储存成绩
void haha(double n); //该函数用来处理后面的*号
int main()
{
	int n;
	double max = 0, min = 100;
	double ave=0;
	double A=0, B=0, C=0, D=0, E=0;
	int i = 1;
	scanf("%d", &n);
	int N = n;
		while (N--) //目的求出ABCDE的人数,和最大最小值以及总分
		{
			scanf("%lf", &a[i]);
			if (a[i] > max)
				max = a[i];
			if (a[i] < min)
				min = a[i];
			if (a[i] >= 90)
				A++;
			else if (a[i] >= 80 && a[i] < 90)
				B++;
			else if (a[i] >= 70 && a[i] < 80)
				C++;
			else if (a[i] >= 60 && a[i] < 70)
				D++;
			else if (a[i] < 60)
				E++;
			printf("%03d:%6.1f ", i, a[i]);
			haha(a[i]);
			ave += a[i];
			i++;
		}
	ave /= n;  //求出平均分;
	printf("\n");
	printf("Max:%6.1f ",max);
	haha(max);
	printf("Min:%6.1f ",min);
	haha(min);
	printf("Avg:%6.1f ",ave);
	haha(ave);
	printf("\n");
	printf("A:%6.1f%% ",A*100/n);
	haha(A*100/n);
	printf("B:%6.1f%% ",B*100/n);
	haha(B*100/n);
	printf("C:%6.1f%% ", C*100/n);
	haha(C*100/n);
	printf("D:%6.1f%% ", D*100/n);
	haha(D*100/n);
	printf("E:%6.1f%% ", E*100/n);
	haha(E*100/n);
}
void haha(double n)
{
	int i;
	if (n - (int)n >= 0.5)\\四舍五入
		i = 0;
	else
		i = 1;
	for (; i <= n; i++)
		printf("*");
	printf("\n");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值