PTA练习,成绩分析统计表

C课程设计2022-第01周

返回

7-5 成绩统计分析表(*) (15 分)

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

输入格式

班级人数n (n>0)
n 名学生的成绩 s1​,s2​,⋯,sn​ (0≤si​≤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>
#include<math.h>//round四舍五入
void prstar(float i){
    for(int k=0;k<round(i);k++)
        printf("*");
        printf("\n");
}//print *
int main(){
    int num,a,b,c,d,e;
    a=b=c=d=e=0;
    float sum;
    sum=0;
    scanf("%d",&num);
    float s[num];
    for(int i=0;i<num;i++){
    	scanf("%f",&s[i]);
	}
	for(int j=0;j<num;j++){
		printf("%03d:%6.1f ",j+1,s[j]);
		prstar(s[j]);
		sum+=s[j];
		if(s[j]>=90&&s[j]<=100)
		a++;
        else if(s[j]>=80&&s[j]<90)
		b++;
	    else if(s[j]>=70&&s[j]<80)
		c++;
	    else if(s[j]>=60&&s[j]<70)
		d++;
		else e++;
	}
	printf("\n");
	float MAX,MIN;
	MAX=0;MIN=100;
	for(int k=0;k<num;k++){
		if(s[k]>MAX)
		MAX=s[k];
	}
	printf("Max:%6.1f ",MAX);
	prstar(MAX);
	for(int l=0;l<num;l++){
		if(s[l]<MIN)
		MIN=s[l];
	}
	printf("Min:%6.1f ",MIN);
	prstar(MIN);
	printf("Avg:%6.1f ",sum*1.0/num);
	prstar(sum*1.0/num);
	printf("\n");
	printf("A:%6.1f%% ",a*1.0/num*100);
	prstar(a*1.0/num*100);
	printf("B:%6.1f%% ",b*1.0/num*100);
	prstar(b*1.0/num*100);
	printf("C:%6.1f%% ",c*1.0/num*100);
	prstar(c*1.0/num*100);
	printf("D:%6.1f%% ",d*1.0/num*100);
	prstar(d*1.0/num*100);
	printf("E:%6.1f%% ",e*1.0/num*100);
	prstar(e*1.0/num*100);
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值