C语言统计一个班的学生成绩排序-创新互联

功能:

成都创新互联是一家专业提供茅箭企业网站建设,专注与网站制作、网站设计HTML5、小程序制作等业务。10年已为茅箭众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

(1) 每个学生的学号和四门功课的成绩从键盘读入。

(2) 计算每个学生的总分和平均分。

(3) 按平均成绩进行排序,输出排序后的成绩单(包括学号、四门功课的成绩和平均分),给出名次。如果分数相同,则名次并列,其他学生名次不变。

实验步骤与要求:

(1) 每个功能为一个独立的函数。

(2) 调试程序时,可先输入少量学生的成绩作为实验数据。如可输入3名学生4门课成绩:

学号 成绩

9701 67,72,65,80

9702 75,82,94,95

9703 70,74,80,76

完整代码:

#include#define N 3 //定义有3个学生
//定义学生结构体
struct student
{
	int n;
	float  c, m, e, p,aver;

};
void paixu(struct student x[N])
{
	printf("-----------------------------------成绩单-------------------------------------\n");
	printf("名次           学号           英语           语文            数学            物理             平均分\n");
	int i, j, k, temp;
	for (i = 0; i< N - 1; i++)
	{
		k = i;
		for (j = i + 1; j< N; j++)
		{
			if (x[i].aver >x[j].aver)//如果 后面比前面小
				k = j;
			if (k != j)//如果前面比后面小
			{
				temp = x[j].aver;
				x[j].aver = x[i].aver;
				x[i].aver = temp;

				temp = x[j].n;
				x[j].n = x[i].n;
				x[i].n = temp;

				temp = x[j].c;
				x[j].c = x[i].c;
				x[i].c = temp;

				temp = x[j].m;
				x[j].m = x[i].m;
				x[i].m = temp;

				temp = x[j].e;
				x[j].e = x[i].e;
				x[i].e = temp;

				temp = x[j].p;
				x[j].p = x[i].p;
				x[i].p = temp;
				//将两个结构组交换
			}
		}

	}
	int a;
	for (a=0; a< N; a++)
	{
		printf("%d          %d          %f          %f          %f          %f          %f\n", a + 1, x[a].n, x[a].e, x[a].c, x[a].m, x[a].p, x[a].aver);

	}


}
//计算模块
float jisuan(float c, float m, float e, float p)
{
	
	float aver, sum;
	sum = c + m + e + p;
	aver = sum / 4;
	printf("总分是:%f,平均值是:%f\n", sum,aver);
	return aver;
}
//输入模块
void fun1()
{

	int a;
	struct student x[N];
	
	for (a = 0; a< N; a++)
	{
		printf("请输入学号:");
		scanf("%d", &x[a].n);
		printf("英语:");
		scanf("%f", &x[a].e);
		printf("语文:");
		scanf("%f", &x[a].c);
		printf("数学:");
		scanf("%f", &x[a].m);
		printf("物理:");
		scanf("%f", &x[a].p);
	
		x[a].aver= jisuan(x[a].c, x[a].m, x[a].e, x[a].p);
		
	}
	paixu(x);
return;
}

//排序模块,排 x[a].aver



int main()
{

	fun1();//完成输入后,由结构体数组储存学生的信息
	

	
}

思路:运用了结构体数组储存学生信息的思想,用循环结构输入输出学生的信息。

  运用了模块化的思想,各个函数模块化,实现调用

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:C语言统计一个班的学生成绩排序-创新互联
浏览地址:http://scyanting.com/article/doiech.html