0
点赞
收藏
分享

微信扫一扫

【C语言】成绩统计

静守幸福 2022-01-17 阅读 67

题目:某班有学生 n 人,从终端读入 n 及 n 个人学生的成绩,试编程实现以下功能:

        ①打印出前 3 个最好成绩及取得每个最好成绩的人数;

        ②若 90 分以上计为优,75-89 分计为“良”,60-74 分计为“中”,60 分以下计为“不及格”,试统计各档成绩所占百分率。

代码:

#include<stdio.h>
int main()
{
	int n,i=1,grade,x_1=0,x_2=0,x_3=0,t,n_1=1,n_2=1,n_3=1,a=0,b=0,c=0,d=0;
	//x_1,x_2,x_3为前三名学生成绩,n_1,n_2,n_3为前三名相应人数,a,b,c,d为每个成绩等级学生数 
	printf("请输入学生人数:");
	scanf("%d",&n);
	getchar();
	do
	{
		printf("请输入第%d个学生的成绩:",i);
		scanf("%d",&grade);
		getchar();
		if(grade>=90) a++;
		else if(grade>=75&&grade<=89) b++;
		else if(grade>=60&&grade<=74) c++;
		else if(grade>=0&&grade<=59) d++;
		else printf("请输入正确成绩:");
		if(grade==x_1) n_1++;
 		else if(grade==x_2) n_2++;
	 	else if(grade==x_3) n_3++;
	 	else if(grade>x_3) {x_3=grade;n_3=1;}
		if(x_1<x_2) {t=x_1;x_1=x_2;x_2=t;t=n_1;n_1=n_2;n_2=t;}
		if(x_1<x_3) {t=x_1;x_1=x_3;x_3=t;t=n_1;n_1=n_3;n_3=t;}
		if(x_2<x_3) {t=x_2;x_2=x_3;x_3=t;t=n_2;n_2=n_3;n_3=t;}//将成绩进行排序 ,相对应的人数也要进行交换 
		i++;
	}while(i<=n);
	printf("第一名为:%d,有%d名\n",x_1,n_1);
	printf("第二名为:%d,有%d名\n",x_2,n_2);
	printf("第三名为:%d,有%d名\n",x_3,n_3);
	printf("成绩等级为“优”占比为:%.2f\n",a*1.0/n);
	printf("成绩等级为“良”占比为:%.2f\n",b*1.0/n);
	printf("成绩等级为“中”占比为:%.2f\n",c*1.0/n);
	printf("成绩等级为“不及格”占比为:%.2f\n",d*1.0/n);
	return 0;
}

运行结果: 

举报

相关推荐

0 条评论